[boinc] 01/01: Imported Upstream version 7.2.22+dfsg
Gianfranco Costamagna
locutusofborg-guest at alioth.debian.org
Fri Oct 11 16:08:17 UTC 2013
This is an automated email from the git hooks/post-receive script.
locutusofborg-guest pushed a commit to annotated tag upstream/7.2.22+dfsg
in repository boinc.
commit 7f58f333b563a2de3e5b74a07eaa5320711ee900
Author: Gianfranco Costamagna <costamagnagianfranco at yahoo.it>
Date: Fri Oct 11 18:04:59 2013 +0200
Imported Upstream version 7.2.22+dfsg
---
android/BOINC/AndroidManifest.xml | 6 +-
android/BOINC/res/drawable-hdpi/mailb.png | Bin 0 -> 4101 bytes
android/BOINC/res/drawable-hdpi/tabtransfers.png | Bin 478 -> 0 bytes
android/BOINC/res/drawable-hdpi/tabtransfersb.png | Bin 451 -> 0 bytes
android/BOINC/res/drawable-ldpi/mailb.png | Bin 0 -> 3430 bytes
android/BOINC/res/drawable-ldpi/tabtransfers.png | Bin 341 -> 0 bytes
android/BOINC/res/drawable-ldpi/tabtransfersb.png | Bin 323 -> 0 bytes
android/BOINC/res/drawable-mdpi/mailb.png | Bin 0 -> 3672 bytes
android/BOINC/res/drawable-mdpi/tabtransfers.png | Bin 402 -> 0 bytes
android/BOINC/res/drawable-mdpi/tabtransfersb.png | Bin 399 -> 0 bytes
.../{icon_trans_tab.xml => icon_notices_tab.xml} | 4 +-
.../{trans_layout.xml => notices_layout.xml} | 4 +-
...ut_listitem.xml => notices_layout_listitem.xml} | 35 +-
.../BOINC/res/layout/projects_layout_listitem.xml | 20 +
android/BOINC/res/layout/trans_layout_listitem.xml | 110 -
.../res/layout/trans_layout_listitem_expansion.xml | 118 -
android/BOINC/res/values-da/strings.xml | 247 +-
android/BOINC/res/values-de/strings.xml | 226 +-
android/BOINC/res/values-el/strings.xml | 226 +-
android/BOINC/res/values-fi/strings.xml | 227 +-
android/BOINC/res/values-sk/strings.xml | 247 +-
android/BOINC/res/values-uk/strings.xml | 247 +-
android/BOINC/res/values-zh-rTW/strings.xml | 24 +-
android/BOINC/res/values/configuration.xml | 2 +-
android/BOINC/res/values/strings.xml | 4 +
.../src/edu/berkeley/boinc/BOINCActivity.java | 4 +-
.../src/edu/berkeley/boinc/NoticesActivity.java | 170 ++
.../src/edu/berkeley/boinc/ProjectsActivity.java | 54 +-
.../src/edu/berkeley/boinc/TransActivity.java | 360 ---
.../berkeley/boinc/adapter/NoticesListAdapter.java | 97 +
.../boinc/adapter/ProjectsListAdapter.java | 60 +
.../berkeley/boinc/adapter/TransListAdapter.java | 325 ---
.../edu/berkeley/boinc/client/ClientStatus.java | 26 +
.../src/edu/berkeley/boinc/client/Monitor.java | 6 +
.../src/edu/berkeley/boinc/rpc/NoticesParser.java | 6 +-
client/app_start.cpp | 1 +
client/gpu_detect.cpp | 13 +-
client/gpu_opencl.cpp | 2 +
client/sysmon_win.cpp | 10 +-
configure.ac | 2 +-
lib/app_ipc.cpp | 5 +
lib/app_ipc.h | 34 +-
lib/diagnostics.cpp | 8 +
lib/diagnostics.h | 1 +
lib/opencl_boinc.cpp | 12 +
lib/opencl_boinc.h | 8 +-
locale/bg/BOINC-Android.po | 115 +-
locale/bg/BOINC-Project-Generic.po | 3 +-
locale/ca/BOINC-Android.po | 119 +-
locale/cs/BOINC-Android.po | 122 +-
locale/da/BOINC-Android.po | 581 +++--
locale/da/BOINC-Client.mo | Bin 417 -> 4752 bytes
locale/da/BOINC-Client.po | 72 +-
locale/da/BOINC-Manager.mo | Bin 40195 -> 40880 bytes
locale/da/BOINC-Manager.po | 22 +-
locale/da/BOINC-Project-Generic.po | 12 +-
locale/da/BOINC-Setup.mo | Bin 554 -> 2882 bytes
locale/da/BOINC-Setup.po | 50 +-
locale/da/BOINC-Web.mo | Bin 684 -> 1348 bytes
locale/da/BOINC-Web.po | 30 +-
locale/de/BOINC-Android.po | 111 +-
locale/el/BOINC-Android.po | 113 +-
locale/es/BOINC-Android.po | 94 +-
locale/es/BOINC-Client.mo | Bin 4928 -> 4984 bytes
locale/es/BOINC-Client.po | 29 +-
locale/es/BOINC-Manager.mo | Bin 82943 -> 82932 bytes
locale/es/BOINC-Manager.po | 8 +-
locale/fi/BOINC-Android.po | 110 +-
locale/fr/BOINC-Android.po | 109 +-
locale/he/BOINC-Android.po | 94 +-
locale/hr/BOINC-Android.po | 97 +-
locale/hu/BOINC-Android.po | 125 +-
locale/hu/BOINC-Client.mo | Bin 4759 -> 5085 bytes
locale/hu/BOINC-Client.po | 9 +-
locale/hu/BOINC-Manager.mo | Bin 80105 -> 81144 bytes
locale/hu/BOINC-Manager.po | 22 +-
locale/hu/BOINC-Project-Generic.po | 28 +-
locale/hu/BOINC-Setup.mo | Bin 798 -> 955 bytes
locale/hu/BOINC-Setup.po | 6 +-
locale/hu/BOINC-Web.mo | Bin 31346 -> 31792 bytes
locale/hu/BOINC-Web.po | 22 +-
locale/it_IT/BOINC-Android.po | 110 +-
locale/ja/BOINC-Android.po | 94 +-
locale/ko/BOINC-Android.po | 100 +-
locale/lt/BOINC-Android.po | 96 +-
locale/lv/BOINC-Android.po | 95 +-
locale/nb/BOINC-Android.po | 94 +-
locale/nl/BOINC-Android.po | 102 +-
locale/pl/BOINC-Android.po | 96 +-
locale/pt_BR/BOINC-Android.po | 94 +-
locale/pt_PT/BOINC-Android.po | 108 +-
locale/ro/BOINC-Android.po | 117 +-
locale/ru/BOINC-Android.po | 121 +-
locale/sk/BOINC-Android.po | 580 +++--
locale/sl/BOINC-Android.po | 95 +-
locale/templates/BOINC-Android.pot | 80 +-
locale/tr/BOINC-Android.po | 110 +-
locale/uk/BOINC-Android.po | 278 ++-
locale/uk/BOINC-Manager.mo | Bin 108660 -> 108645 bytes
locale/uk/BOINC-Manager.po | 37 +-
locale/uk/BOINC-Project-Generic.po | 23 +-
locale/uk/BOINC-Setup.mo | Bin 3760 -> 3794 bytes
locale/uk/BOINC-Setup.po | 11 +-
locale/uk/BOINC-Web.mo | Bin 48050 -> 48058 bytes
locale/uk/BOINC-Web.po | 8 +-
locale/zh_CN/BOINC-Android.po | 666 ++++--
locale/zh_CN/BOINC-Setup.mo | Bin 2756 -> 2756 bytes
locale/zh_CN/BOINC-Setup.po | 2 +-
locale/zh_TW/BOINC-Android.po | 129 +-
samples/glut/Roman.stroke | 604 +++++
samples/glut/glut.h | 595 +++++
samples/glut/glut_roman.c | 2451 ++++++++++++++++++++
samples/glut/glut_stroke.c | 42 +
samples/glut/glut_swidth.c | 58 +
samples/glut/glutbitmap.h | 30 +
samples/glut/glutint.h | 24 +
samples/glut/glutstroke.h | 42 +
samples/glut/glutwin32.h | 18 +
samples/glut/stroke.h | 134 ++
samples/glut/win32_glx.c | 255 ++
samples/glut/win32_glx.h | 58 +
samples/glut/win32_util.c | 82 +
samples/glut/win32_x11.c | 401 ++++
samples/glut/win32_x11.h | 319 +++
124 files changed, 10435 insertions(+), 2978 deletions(-)
diff --git a/android/BOINC/AndroidManifest.xml b/android/BOINC/AndroidManifest.xml
index 6fc1968..16e5d4a 100644
--- a/android/BOINC/AndroidManifest.xml
+++ b/android/BOINC/AndroidManifest.xml
@@ -20,8 +20,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="edu.berkeley.boinc"
- android:versionCode="34"
- android:versionName="7.2.17"
+ android:versionCode="36"
+ android:versionName="7.2.21"
android:installLocation="internalOnly" > <!-- installation on SD card would break boot receiver -->
@@ -70,7 +70,7 @@
android:configChanges="orientation"/>
<activity android:name=".StatusActivity" />
<activity android:name=".TasksActivity" />
- <activity android:name=".TransActivity" />
+ <activity android:name=".NoticesActivity" />
<activity android:name=".PrefsActivity" />
<activity android:name=".ProjectsActivity" />
<activity android:name=".EventLogActivity" />
diff --git a/android/BOINC/res/drawable-hdpi/mailb.png b/android/BOINC/res/drawable-hdpi/mailb.png
new file mode 100644
index 0000000..4b2ced4
Binary files /dev/null and b/android/BOINC/res/drawable-hdpi/mailb.png differ
diff --git a/android/BOINC/res/drawable-hdpi/tabtransfers.png b/android/BOINC/res/drawable-hdpi/tabtransfers.png
deleted file mode 100644
index dcdc525..0000000
Binary files a/android/BOINC/res/drawable-hdpi/tabtransfers.png and /dev/null differ
diff --git a/android/BOINC/res/drawable-hdpi/tabtransfersb.png b/android/BOINC/res/drawable-hdpi/tabtransfersb.png
deleted file mode 100644
index 2d10102..0000000
Binary files a/android/BOINC/res/drawable-hdpi/tabtransfersb.png and /dev/null differ
diff --git a/android/BOINC/res/drawable-ldpi/mailb.png b/android/BOINC/res/drawable-ldpi/mailb.png
new file mode 100644
index 0000000..51d6ca5
Binary files /dev/null and b/android/BOINC/res/drawable-ldpi/mailb.png differ
diff --git a/android/BOINC/res/drawable-ldpi/tabtransfers.png b/android/BOINC/res/drawable-ldpi/tabtransfers.png
deleted file mode 100644
index b35474b..0000000
Binary files a/android/BOINC/res/drawable-ldpi/tabtransfers.png and /dev/null differ
diff --git a/android/BOINC/res/drawable-ldpi/tabtransfersb.png b/android/BOINC/res/drawable-ldpi/tabtransfersb.png
deleted file mode 100644
index b1cdf10..0000000
Binary files a/android/BOINC/res/drawable-ldpi/tabtransfersb.png and /dev/null differ
diff --git a/android/BOINC/res/drawable-mdpi/mailb.png b/android/BOINC/res/drawable-mdpi/mailb.png
new file mode 100644
index 0000000..5a51fe8
Binary files /dev/null and b/android/BOINC/res/drawable-mdpi/mailb.png differ
diff --git a/android/BOINC/res/drawable-mdpi/tabtransfers.png b/android/BOINC/res/drawable-mdpi/tabtransfers.png
deleted file mode 100644
index c24b253..0000000
Binary files a/android/BOINC/res/drawable-mdpi/tabtransfers.png and /dev/null differ
diff --git a/android/BOINC/res/drawable-mdpi/tabtransfersb.png b/android/BOINC/res/drawable-mdpi/tabtransfersb.png
deleted file mode 100644
index 1af9731..0000000
Binary files a/android/BOINC/res/drawable-mdpi/tabtransfersb.png and /dev/null differ
diff --git a/android/BOINC/res/drawable/icon_trans_tab.xml b/android/BOINC/res/drawable/icon_notices_tab.xml
similarity index 89%
rename from android/BOINC/res/drawable/icon_trans_tab.xml
rename to android/BOINC/res/drawable/icon_notices_tab.xml
index bb7d787..fdb5e5d 100644
--- a/android/BOINC/res/drawable/icon_trans_tab.xml
+++ b/android/BOINC/res/drawable/icon_notices_tab.xml
@@ -19,8 +19,8 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- when selected use dark icons -->
- <item android:drawable="@drawable/tabtransfersb"
+ <item android:drawable="@drawable/mailb"
android:state_selected="true"></item>
<!-- when not selected, use white -->
- <item android:drawable="@drawable/tabtransfers"></item>
+ <item android:drawable="@drawable/mailw"></item>
</selector>
diff --git a/android/BOINC/res/layout/trans_layout.xml b/android/BOINC/res/layout/notices_layout.xml
similarity index 96%
rename from android/BOINC/res/layout/trans_layout.xml
rename to android/BOINC/res/layout/notices_layout.xml
index aa298ab..b819068 100644
--- a/android/BOINC/res/layout/trans_layout.xml
+++ b/android/BOINC/res/layout/notices_layout.xml
@@ -21,9 +21,11 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
+
<ListView
- android:id="@+id/transList"
+ android:id="@+id/noticesList"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
+
</LinearLayout>
diff --git a/android/BOINC/res/layout/projects_layout_listitem.xml b/android/BOINC/res/layout/notices_layout_listitem.xml
similarity index 75%
copy from android/BOINC/res/layout/projects_layout_listitem.xml
copy to android/BOINC/res/layout/notices_layout_listitem.xml
index 8a6874c..32d5d10 100644
--- a/android/BOINC/res/layout/projects_layout_listitem.xml
+++ b/android/BOINC/res/layout/notices_layout_listitem.xml
@@ -22,16 +22,16 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:clickable="true">
+ android:clickable="true"
+ android:onClick="noticeClick">
<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:id="@+id/projectIcon"
android:layout_width="48dp"
android:layout_height="48dp"
android:scaleType="fitCenter"
@@ -40,40 +40,39 @@
</RelativeLayout>
<LinearLayout
- android:layout_width="fill_parent"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="3dp">
<TextView
- android:id="@+id/project_name"
+ android:id="@+id/projectName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceLarge" />
+ android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
- android:id="@+id/project_user"
+ android:id="@+id/noticeTitle"
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:id="@+id/project_status"
+ android:id="@+id/noticeContent"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:layout_marginBottom="5dp" />
+
+ <TextView
+ android:id="@+id/noticeTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/dark_grey"
android:textAppearance="?android:attr/textAppearanceSmall" />
-
- <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>
+
</LinearLayout>
diff --git a/android/BOINC/res/layout/projects_layout_listitem.xml b/android/BOINC/res/layout/projects_layout_listitem.xml
index 8a6874c..ee12cb2 100644
--- a/android/BOINC/res/layout/projects_layout_listitem.xml
+++ b/android/BOINC/res/layout/projects_layout_listitem.xml
@@ -60,6 +60,18 @@
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"
@@ -67,6 +79,14 @@
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"
diff --git a/android/BOINC/res/layout/trans_layout_listitem.xml b/android/BOINC/res/layout/trans_layout_listitem.xml
deleted file mode 100644
index ddc8b7f..0000000
--- a/android/BOINC/res/layout/trans_layout_listitem.xml
+++ /dev/null
@@ -1,110 +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:layout_width="match_parent"
- android:layout_height="match_parent"
- android:clickable="false"
- android:orientation="horizontal" >
-
- <ImageView
- android:id="@+id/projectIcon"
- android:layout_width="60dp"
- android:layout_height="60dp"
- android:layout_margin="10dip"
- android:layout_marginLeft="10dip"
- android:background="@drawable/shape_blue_border"
- android:contentDescription="@drawable/shape_blue_border"
- android:padding="1dp"
- android:scaleType="fitCenter" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="5dip"
- android:layout_marginTop="12dip"
- android:orientation="vertical" >
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginRight="10dip"
- android:orientation="horizontal" >
-
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/transHeader"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:textColor="@color/black"
- android:textStyle="bold" />
-
- <TextView
- android:id="@+id/projectName"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content" >
-
- <TextView
- android:id="@+id/transStatus"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="@color/black" />
-
- <TextView
- android:id="@+id/transProgress"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="10dip"
- android:ems="5"
- android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="@color/black"
- android:textStyle="bold" />
-
- </LinearLayout>
-
- </LinearLayout>
-
- <ImageView
- android:id="@+id/expandCollapse"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:src="@drawable/collapse"
- android:contentDescription="@drawable/collapse" />
-
- </RelativeLayout>
-
- <include
- android:id="@+id/expansion"
- layout="@layout/trans_layout_listitem_expansion" />
-
- </LinearLayout>
-</LinearLayout>
diff --git a/android/BOINC/res/layout/trans_layout_listitem_expansion.xml b/android/BOINC/res/layout/trans_layout_listitem_expansion.xml
deleted file mode 100644
index e823ab2..0000000
--- a/android/BOINC/res/layout/trans_layout_listitem_expansion.xml
+++ /dev/null
@@ -1,118 +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:layout_width="match_parent"
- android:layout_height="match_parent"
- android:clickable="false"
- android:orientation="vertical"
- android:paddingRight="5dip" >
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal" >
-
- <LinearLayout
- android:id="@+id/transButtons"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:gravity="right"
- android:orientation="horizontal" >
-
- <ImageView
- android:id="@+id/abortTrans"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:clickable="true"
- android:contentDescription="@drawable/aborttask"
- android:paddingLeft="5dip"
- android:paddingRight="5dip"
- android:src="@drawable/aborttask" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/requestPendingWrapper"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignBottom="@id/transButtons"
- android:layout_alignLeft="@id/transButtons"
- android:layout_alignParentRight="true"
- android:layout_alignTop="@id/transButtons"
- android:orientation="vertical"
- android:visibility="visible" >
-
- <ProgressBar
- android:id="@+id/request_progressBar"
- style="?android:attr/progressBarStyleSmall"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_margin="5dp" />
-
- </LinearLayout>
-
- <RelativeLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
- android:layout_centerVertical="true"
- android:layout_toLeftOf="@+id/transButtons" >
-
- <ProgressBar
- android:id="@+id/progressBar"
- style="?android:attr/progressBarStyleHorizontal"
- android:layout_width="match_parent"
- android:layout_height="20dip"
- android:layout_marginLeft="10dip"
- android:layout_marginRight="10dip"
- android:progressDrawable="@drawable/progressbar" />
-
- </RelativeLayout>
-
- </RelativeLayout>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- android:gravity="left"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/transNameLabel"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:paddingRight="5dp"
- android:text="@string/trans_header_name"
- android:textColor="@color/black"
- android:textStyle="bold|italic" />
-
- <TextView
- android:id="@+id/transName"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="@color/black"
- android:textStyle="italic" />
-
- </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/android/BOINC/res/values-da/strings.xml b/android/BOINC/res/values-da/strings.xml
index 94edc23..4f3e239 100644
--- a/android/BOINC/res/values-da/strings.xml
+++ b/android/BOINC/res/values-da/strings.xml
@@ -1,2 +1,247 @@
<?xml version='1.0' encoding='utf-8'?>
-<resources/>
+<resources>
+ <string name="app_name">BOINC</string>
+ <string name="generic_loading">Indlæser! Vent venligst…</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_no_internet">Ingen Internet-forbindelse</string>
+ <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">Dette projekt understøtter Android-enheder</string>
+ <string name="attachproject_login_platform_not_supported">Dette projekt understøtter ikke Android-enheder</string>
+ <string name="attachproject_login_category_terms_of_use">Brugervilkår for</string>
+ <string name="attachproject_login_accept_terms_of_use">Ved at oprette en konto hos dette projekt, accepterer du brugervilkå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">Kodeord:</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">Projektet tillader for tiden ikke oprettelse af 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 kodeord</string>
+ <string name="attachproject_login_error_toast">Kontakt til projekt fejlede!</string>
+ <string name="attachproject_login_attached">Forbundet</string>
+ <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">Kodeord:</string>
+ <string name="attachproject_registration_header_pwd_confirm">… Tast igen:</string>
+ <string name="attachproject_registration_button">Opret</string>
+ <string name="attachproject_error_wrong_name">Bruger ikke fundet</string>
+ <string name="attachproject_error_short_pwd">Kodeord for kort</string>
+ <string name="attachproject_error_no_internet">Forbindelsesfejl</string>
+ <string name="attachproject_error_pwd_no_match">Kodeord passer ikke sammen</string>
+ <string name="attachproject_error_no_email">Indtast venligst emailadresse</string>
+ <string name="attachproject_error_no_pwd">Indtast venligst et kodeord</string>
+ <string name="attachproject_error_no_name">Indtast venligst brugernavn</string>
+ <string name="attachproject_error_unknown">fejlede</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">Kodeord afvist</string>
+ <string name="attachproject_error_creation_disabled">Oprettelse af konti er slået fra for dette projekt</string>
+ <string name="attachproject_working_back_button">Tilbage</string>
+ <string name="attachproject_working_finish_button">Færdig</string>
+ <string name="attachproject_working_check_desc">Succesfuldt</string>
+ <string name="attachproject_working_failed_desc">Fejlede</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="main_noproject_warning">Rø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>
+ <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_desc">Navigering</string>
+ <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>
+ <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_run_on_battery_header">Beregn i batteritilstand</string>
+ <string name="battery_charge_min_pct_header">Min. batteriniveau</string>
+ <string name="battery_charge_min_pct_description">BOINC stopper beregninger under defineret batteriopladningsniveau.</string>
+ <string name="battery_temperature_max_header">Max. 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_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_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-brug.</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 uddybning af 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="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>
+ <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>
+ <string name="projects_control_dialog_title">Projektkommandoer:</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_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_confirm">Nulstil</string>
+ <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 fejlede</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>
+ <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>
+ <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">fejlede</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="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>
+ <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>
+ <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_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 brugt op.</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">Batteri skal være under opladning, før beregning genoptages.</string>
+ <string name="suspend_battery_charging_long">Beregning vil blive genoptaget, når batteriniveau når</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>
+ <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 begrundelse</string>
+ <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>
+ <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">© 2003–2013 University of California, Berkeley.\nAlle rettigheder forbeholdes.</string>
+</resources>
diff --git a/android/BOINC/res/values-de/strings.xml b/android/BOINC/res/values-de/strings.xml
index c633b1c..94edc23 100644
--- a/android/BOINC/res/values-de/strings.xml
+++ b/android/BOINC/res/values-de/strings.xml
@@ -1,226 +1,2 @@
<?xml version='1.0' encoding='utf-8'?>
-<resources>
- <string name="app_name">BOINC</string>
- <string name="generic_loading">Es wird geladen. Bitte warten…</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_no_internet">Keine Internetverbindung</string>
- <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">Das Projekt erlaubt zur Zeit keine neuen Konten!</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>
- <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>
- <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_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_email_bad_syntax">E-Mail 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_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_description">:</string>
- <string name="attachproject_working_connect">Verbinden</string>
- <string name="attachproject_working_verify">Konto überprüfen</string>
- <string name="attachproject_working_login">Anmelden</string>
- <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>
- <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_desc">Navigation</string>
- <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_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>
- <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_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">Fehlerdiagnose</string>
- <string name="prefs_category_debug">Fehlerdiagnose</string>
- <string name="prefs_show_advanced_header">Zeige erweiterte Einstellungen und Steuerungen…</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_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_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_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_time_max_header">Prozessorbegrenzung</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_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_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>
- <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>
- <string name="projects_control_dialog_title">Projektbefehle:</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_confirm_detach_title">Projekt entfernen?</string>
- <string name="projects_confirm_detach_message">Wollen Sie wirklich zurücksetzen</string>
- <string name="projects_confirm_detach_message2">von BOINC?</string>
- <string name="projects_confirm_detach_confirm">Entfernen</string>
- <string name="projects_confirm_reset_title">Projekt zurücksetzen</string>
- <string name="projects_confirm_reset_confirm">Zurücksetzen</string>
- <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>
- <string name="confirm_abort_task_title">Aufgabe abbrechen?</string>
- <string name="confirm_abort_task_confirm">Abbrechen</string>
- <string name="confirm_cancel">Abbrechen</string>
- <string name="confirm_image_desc">Bestätigungsdialog</string>
- <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_header_name">Datei:</string>
- <string name="confirm_abort_trans_title">Übertragung abbrechen?</string>
- <string name="confirm_abort_trans_confirm">Abbrechen</string>
- <string name="eventlog_loading">Lade Protokollnachrichten…</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>
- <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_useractive">Benutzer ist aktiv.</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_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">Der Akku muss geladen werden bevor die Berechnung fortgesetzt werden kann.</string>
- <string name="suspend_battery_charging_long">Berechnung wird fortgesetzt wenn der Ladezustand erreicht</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>
- <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>
- <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">Statusprotokoll</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>
- <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–2013 Universität von Kalifornien, Berkeley.\nAlle Rechte vorbehalten.</string>
-</resources>
+<resources/>
diff --git a/android/BOINC/res/values-el/strings.xml b/android/BOINC/res/values-el/strings.xml
index c633b1c..94edc23 100644
--- a/android/BOINC/res/values-el/strings.xml
+++ b/android/BOINC/res/values-el/strings.xml
@@ -1,226 +1,2 @@
<?xml version='1.0' encoding='utf-8'?>
-<resources>
- <string name="app_name">BOINC</string>
- <string name="generic_loading">Es wird geladen. Bitte warten…</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_no_internet">Keine Internetverbindung</string>
- <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">Das Projekt erlaubt zur Zeit keine neuen Konten!</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>
- <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>
- <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_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_email_bad_syntax">E-Mail 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_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_description">:</string>
- <string name="attachproject_working_connect">Verbinden</string>
- <string name="attachproject_working_verify">Konto überprüfen</string>
- <string name="attachproject_working_login">Anmelden</string>
- <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>
- <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_desc">Navigation</string>
- <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_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>
- <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_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">Fehlerdiagnose</string>
- <string name="prefs_category_debug">Fehlerdiagnose</string>
- <string name="prefs_show_advanced_header">Zeige erweiterte Einstellungen und Steuerungen…</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_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_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_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_time_max_header">Prozessorbegrenzung</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_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_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>
- <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>
- <string name="projects_control_dialog_title">Projektbefehle:</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_confirm_detach_title">Projekt entfernen?</string>
- <string name="projects_confirm_detach_message">Wollen Sie wirklich zurücksetzen</string>
- <string name="projects_confirm_detach_message2">von BOINC?</string>
- <string name="projects_confirm_detach_confirm">Entfernen</string>
- <string name="projects_confirm_reset_title">Projekt zurücksetzen</string>
- <string name="projects_confirm_reset_confirm">Zurücksetzen</string>
- <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>
- <string name="confirm_abort_task_title">Aufgabe abbrechen?</string>
- <string name="confirm_abort_task_confirm">Abbrechen</string>
- <string name="confirm_cancel">Abbrechen</string>
- <string name="confirm_image_desc">Bestätigungsdialog</string>
- <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_header_name">Datei:</string>
- <string name="confirm_abort_trans_title">Übertragung abbrechen?</string>
- <string name="confirm_abort_trans_confirm">Abbrechen</string>
- <string name="eventlog_loading">Lade Protokollnachrichten…</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>
- <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_useractive">Benutzer ist aktiv.</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_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">Der Akku muss geladen werden bevor die Berechnung fortgesetzt werden kann.</string>
- <string name="suspend_battery_charging_long">Berechnung wird fortgesetzt wenn der Ladezustand erreicht</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>
- <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>
- <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">Statusprotokoll</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>
- <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–2013 Universität von Kalifornien, Berkeley.\nAlle Rechte vorbehalten.</string>
-</resources>
+<resources/>
diff --git a/android/BOINC/res/values-fi/strings.xml b/android/BOINC/res/values-fi/strings.xml
index ca8e064..94edc23 100644
--- a/android/BOINC/res/values-fi/strings.xml
+++ b/android/BOINC/res/values-fi/strings.xml
@@ -1,227 +1,2 @@
<?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_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_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_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_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_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="main_noproject_warning">Napauta tähän valitaksesi projektin.</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_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">Rajoittaa RAM-muistin määrän, joka tehtäville sallitaan.</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_run_on_battery_header">Laskenta akkukäytöllä</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_show_notification_header">Näytä ilmoitus kun hyllytetty</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_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_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="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="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="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_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_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>
+<resources/>
diff --git a/android/BOINC/res/values-sk/strings.xml b/android/BOINC/res/values-sk/strings.xml
index 94edc23..156af61 100644
--- a/android/BOINC/res/values-sk/strings.xml
+++ b/android/BOINC/res/values-sk/strings.xml
@@ -1,2 +1,247 @@
<?xml version='1.0' encoding='utf-8'?>
-<resources/>
+<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">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>
+ <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_noproject_warning">Нажмите здесь для выбора проекта.</string>
+ <string name="main_error">Упс</string>
+ <string name="main_error_long">…этого не должно было произойти!\nНажмите на значок BOINC, чтобы попробовать ещё раз.</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">Тестирование производительности…</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">Процессор</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_run_on_battery_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_show_notification_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="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">Проект завершён - ОК для удаления</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 на 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="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">BOINC - Berkeley Open Infrastructure for Network Computing\nОткрытая Инфраструктура для Распределенных Вычислений университета Беркли</string>
+ <string name="about_copyright">© 2003-2013 Калифорнийский университет, Беркли.\nВсе права защищены.</string>
+</resources>
diff --git a/android/BOINC/res/values-uk/strings.xml b/android/BOINC/res/values-uk/strings.xml
index 94edc23..05ef578 100644
--- a/android/BOINC/res/values-uk/strings.xml
+++ b/android/BOINC/res/values-uk/strings.xml
@@ -1,2 +1,247 @@
<?xml version='1.0' encoding='utf-8'?>
-<resources/>
+<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">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>
+ <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_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_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">ЦП</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_run_on_battery_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_show_notification_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="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">Проект завершений - Гаразд для видалення</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 на 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="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-zh-rTW/strings.xml b/android/BOINC/res/values-zh-rTW/strings.xml
index d720eb6..22fb3a0 100644
--- a/android/BOINC/res/values-zh-rTW/strings.xml
+++ b/android/BOINC/res/values-zh-rTW/strings.xml
@@ -9,7 +9,7 @@
<string name="attachproject_list_manual_no_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_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>
@@ -39,12 +39,12 @@
<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_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_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>
@@ -56,14 +56,14 @@
<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_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_verify">驗證帳號</string>
<string name="attachproject_working_register">註冊帳號</string>
<string name="attachproject_working_login">登入</string>
<string name="main_noproject_warning">點此選擇一個專案。</string>
@@ -89,7 +89,7 @@
<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_submit_button">儲存</string>
<string name="prefs_dialog_title">輸入新參數:</string>
<string name="prefs_dialog_title_selection">選擇:</string>
<string name="prefs_category_general">一般</string>
@@ -99,15 +99,15 @@
<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_run_on_battery_header">用電池來運算</string>
+ <string name="prefs_show_advanced_header">顯示進階的偏好設定...</string>
+ <string name="prefs_run_on_battery_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_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_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>
@@ -160,7 +160,7 @@
<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_project_paused">(暫停)</string>
<string name="tasks_header_deadline">上傳期限:</string>
<string name="tasks_result_new">新</string>
<string name="tasks_result_files_downloading">等待下載中</string>
@@ -179,7 +179,7 @@
<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_message">放棄任務:</string>
<string name="confirm_abort_task_confirm">停止</string>
<string name="confirm_cancel">取消</string>
<string name="confirm_image_desc">確認對話框</string>
diff --git a/android/BOINC/res/values/configuration.xml b/android/BOINC/res/values/configuration.xml
index 2773801..d8fd330 100644
--- a/android/BOINC/res/values/configuration.xml
+++ b/android/BOINC/res/values/configuration.xml
@@ -51,7 +51,7 @@
<bool name="tab_status">true</bool>
<bool name="tab_projects">true</bool>
<bool name="tab_tasks">true</bool>
- <bool name="tab_transfers">true</bool>
+ <bool name="tab_notices">true</bool>
<bool name="tab_preferences">true</bool>
<!-- configuration on status layout -->
<integer name="status_min_screen_height_for_slideshow_px">400</integer>
diff --git a/android/BOINC/res/values/strings.xml b/android/BOINC/res/values/strings.xml
index d111f3f..bec5686 100644
--- a/android/BOINC/res/values/strings.xml
+++ b/android/BOINC/res/values/strings.xml
@@ -119,6 +119,7 @@
<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 -->
@@ -267,6 +268,9 @@
<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>
diff --git a/android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java b/android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java
index 546cd34..889c996 100644
--- a/android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java
+++ b/android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java
@@ -229,12 +229,12 @@ public class BOINCActivity extends TabActivity {
// set tabs
if(res.getBoolean(R.bool.tab_status))
setupTab(new TextView(this), getResources().getString(R.string.tab_status), R.drawable.icon_status_tab, StatusActivity.class);
+ if(res.getBoolean(R.bool.tab_notices))
+ setupTab(new TextView(this), getResources().getString(R.string.tab_notices), R.drawable.icon_notices_tab, NoticesActivity.class);
if(res.getBoolean(R.bool.tab_projects))
setupTab(new TextView(this), getResources().getString(R.string.tab_projects), R.drawable.icon_projects_tab, ProjectsActivity.class);
if(res.getBoolean(R.bool.tab_tasks))
setupTab(new TextView(this), getResources().getString(R.string.tab_tasks), R.drawable.icon_tasks_tab, TasksActivity.class);
- if(res.getBoolean(R.bool.tab_transfers))
- setupTab(new TextView(this), getResources().getString(R.string.tab_transfers), R.drawable.icon_trans_tab, TransActivity.class);
if(res.getBoolean(R.bool.tab_preferences))
setupTab(new TextView(this), getResources().getString(R.string.tab_preferences), R.drawable.icon_prefs_tab, PrefsActivity.class);
diff --git a/android/BOINC/src/edu/berkeley/boinc/NoticesActivity.java b/android/BOINC/src/edu/berkeley/boinc/NoticesActivity.java
new file mode 100644
index 0000000..49549c9
--- /dev/null
+++ b/android/BOINC/src/edu/berkeley/boinc/NoticesActivity.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * 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 java.util.Collections;
+import edu.berkeley.boinc.adapter.NoticesListAdapter;
+import edu.berkeley.boinc.client.Monitor;
+import edu.berkeley.boinc.rpc.Notice;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.support.v4.app.FragmentActivity;
+import android.util.Log;
+import android.view.View;
+import android.widget.ListView;
+import android.widget.TextView;
+
+public class NoticesActivity extends FragmentActivity {
+
+ private Monitor monitor;
+ private Boolean mIsBound = false;
+
+ private ListView noticesList;
+ private NoticesListAdapter noticesListAdapter;
+ private ArrayList<Notice> data = new ArrayList<Notice>();
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+
+ setLayoutLoading();
+ doBindService();
+
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public void onResume() {
+ if(Logging.VERBOSE) Log.d(Logging.TAG, "NoticesActivity onResume()");
+
+ super.onResume();
+
+ // data retrieval
+ (new NoticesRetrievalAsync()).execute();
+ }
+
+ @Override
+ protected void onDestroy() {
+ doUnbindService();
+ super.onDestroy();
+ }
+
+ private ServiceConnection mConnection = new ServiceConnection() {
+ public void onServiceConnected(ComponentName className, IBinder service) {
+ if(Logging.VERBOSE) Log.v(Logging.TAG,"EventLogActivity onServiceConnected");
+ monitor = ((Monitor.LocalBinder)service).getService();
+ mIsBound = true;
+
+ // data retrieval
+ (new NoticesRetrievalAsync()).execute();
+ }
+
+ public void onServiceDisconnected(ComponentName className) {
+ monitor = null;
+ mIsBound = false;
+ }
+ };
+
+ private void doBindService() {
+ if(!mIsBound) {
+ getApplicationContext().bindService(new Intent(this, Monitor.class), mConnection, 0);
+ }
+ }
+
+ private void doUnbindService() {
+ if (mIsBound) {
+ getApplicationContext().unbindService(mConnection);
+ mIsBound = false;
+ }
+ }
+
+ private void populateLayout() {
+ try {
+
+ setContentView(R.layout.notices_layout);
+
+ noticesList = (ListView) findViewById(R.id.noticesList);
+ noticesListAdapter = new NoticesListAdapter(NoticesActivity.this, R.id.noticesList, data);
+ noticesList.setAdapter(noticesListAdapter);
+
+
+ } catch (Exception e) {
+ // data retrieval failed, set layout to loading...
+ setLayoutLoading();
+ }
+ }
+
+ private void setLayoutLoading() {
+ setContentView(R.layout.generic_layout_loading);
+ TextView loadingHeader = (TextView)findViewById(R.id.loading_header);
+ loadingHeader.setText(R.string.eventlog_loading);
+ }
+
+ public void noticeClick(View v) {
+ String url = (String) v.getTag();
+ if(Logging.DEBUG) Log.d(Logging.TAG,"noticeClick: " + url);
+
+ if(url != null && !url.isEmpty()){
+ Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+ startActivity(i);
+ }
+ }
+
+ private final class NoticesRetrievalAsync extends AsyncTask<Void,Void,Boolean> {
+
+ @Override
+ protected void onPreExecute() {
+ if(Logging.DEBUG) Log.d(Logging.TAG,"NoticesRetrievalAsync onPreExecute, mIsBound: " + mIsBound);
+ if(!mIsBound) cancel(false);
+ super.onPreExecute();
+ }
+
+ @Override
+ protected Boolean doInBackground(Void... params) {
+ if(Logging.DEBUG) Log.d(Logging.TAG,"NoticesRetrievalAsync doInBackground");
+ try{
+ ArrayList<Notice> monitorList = monitor.getNotices();
+ // remove client and scheduler notices
+ ArrayList<Notice> rssNotices = new ArrayList<Notice>();
+ for(Notice notice: monitorList) {
+ if(!notice.isClientNotice && !notice.isServerNotice) rssNotices.add(notice);
+ }
+
+ // reverse to have most current on top
+ Collections.reverse(rssNotices);
+ data = rssNotices;
+ } catch(Exception e) {if(Logging.WARNING) Log.w(Logging.TAG,"NoticesRetrievalAsync error in do in background",e);}
+ if(data != null) return true;
+ else return false;
+ }
+
+ @Override
+ protected void onPostExecute(Boolean success) {
+ if(Logging.DEBUG) Log.d(Logging.TAG,"NoticesRetrievalAsync success: " + success + " data elements: " + data.size());
+ if(success) populateLayout();
+ else if(Logging.WARNING) Log.w(Logging.TAG,"NoticesRetrievalAsync failed.");
+ }
+ }
+}
diff --git a/android/BOINC/src/edu/berkeley/boinc/ProjectsActivity.java b/android/BOINC/src/edu/berkeley/boinc/ProjectsActivity.java
index 0b25a12..bce99c3 100644
--- a/android/BOINC/src/edu/berkeley/boinc/ProjectsActivity.java
+++ b/android/BOINC/src/edu/berkeley/boinc/ProjectsActivity.java
@@ -50,6 +50,7 @@ import edu.berkeley.boinc.rpc.Notice;
import edu.berkeley.boinc.rpc.AcctMgrInfo;
import edu.berkeley.boinc.rpc.Project;
import edu.berkeley.boinc.rpc.RpcClient;
+import edu.berkeley.boinc.rpc.Transfer;
public class ProjectsActivity extends FragmentActivity {
@@ -142,13 +143,15 @@ public class ProjectsActivity extends FragmentActivity {
private void populateLayout() {
try {
// read projects from state saved in ClientStatus
- ArrayList<Project> tmpA = Monitor.getClientStatus().getProjects();
- AcctMgrInfo tmpB = Monitor.getClientStatus().getAcctMgrInfo();
+ ArrayList<Project> statusProjects = Monitor.getClientStatus().getProjects();
+ AcctMgrInfo statusAcctMgr = Monitor.getClientStatus().getAcctMgrInfo();
+ ArrayList<Transfer> statusTransfers = Monitor.getClientStatus().getTransfers();
- if(tmpA == null || tmpB == null) {
- Boolean aNull = tmpA == null;
- Boolean bNull = tmpB == null;
- if(Logging.ERROR) Log.d(Logging.TAG,"ProjectsActiviy data retrieval failed: tmpA null: " + aNull + " ; tmpB null: " + bNull);
+ if(statusProjects == null || statusAcctMgr == null || statusTransfers == null) {
+ Boolean statusProjectsNull = statusProjects == null;
+ Boolean statusAcctMgrNull = statusAcctMgr == null;
+ Boolean statusTransfersNull = statusTransfers == null;
+ if(Logging.ERROR) Log.d(Logging.TAG,"ProjectsActiviy data retrieval failed: statusProjectsNull: " + statusProjectsNull + " ; statusAcctMgrNull: " + statusAcctMgrNull + " ; statusTransfersNull: " + statusTransfersNull);
setLayoutLoading();
return;
@@ -159,7 +162,7 @@ public class ProjectsActivity extends FragmentActivity {
ArrayList<Notice> serverNotices = null;
if(mIsBound) serverNotices = monitor.getServerNotices();
- // Switch to a view that can actually display messages
+ // reading data successful. switch to standard layout, if first time.
if (initialSetupRequired) {
initialSetupRequired = false;
setContentView(R.layout.projects_layout);
@@ -168,7 +171,7 @@ public class ProjectsActivity extends FragmentActivity {
}
// Update Project data
- updateData(tmpA, tmpB, serverNotices);
+ updateData(statusProjects, statusAcctMgr, serverNotices, statusTransfers);
// Force list adapter to refresh
listAdapter.notifyDataSetChanged();
@@ -180,8 +183,9 @@ public class ProjectsActivity extends FragmentActivity {
}
}
- private void updateData(ArrayList<Project> latestRpcProjectsList, AcctMgrInfo acctMgrInfo, ArrayList<Notice> serverNotices) {
-
+ private void updateData(ArrayList<Project> latestRpcProjectsList, AcctMgrInfo acctMgrInfo, ArrayList<Notice> serverNotices, ArrayList<Transfer> ongoingTransfers) {
+
+ // ACCOUNT MANAGER
//loop through list adapter array to find index of account manager entry (0 || 1 manager possible)
int mgrIndex = -1;
for(int x = 0; x < data.size(); x++) {
@@ -194,7 +198,7 @@ public class ProjectsActivity extends FragmentActivity {
if(Logging.VERBOSE) Log.d(Logging.TAG,"no manager found in layout list. new entry available: " + acctMgrInfo.present);
if(acctMgrInfo.present) {
// add new manager entry, at top of the list
- data.add(new ProjectsListData(null,acctMgrInfo));
+ data.add(new ProjectsListData(null,acctMgrInfo,null));
if(Logging.DEBUG) Log.d(Logging.TAG,"new acct mgr found: " + acctMgrInfo.acct_mgr_name);
}
} else { // manager found in existing list
@@ -206,6 +210,7 @@ public class ProjectsActivity extends FragmentActivity {
}
}
+ // ATTACHED PROJECTS
//loop through all received Result items to add new results
for(Project rpcResult: latestRpcProjectsList) {
//check whether this Result is new
@@ -218,10 +223,10 @@ public class ProjectsActivity extends FragmentActivity {
}
if(index == null) { // result is new, add
if(Logging.DEBUG) Log.d(Logging.TAG,"new result found, id: " + rpcResult.master_url + ", managed: " + rpcResult.attached_via_acct_mgr);
- if(rpcResult.attached_via_acct_mgr) data.add(new ProjectsListData(rpcResult,null)); // append to end of list (after manager)
- else data.add(0, new ProjectsListData(rpcResult,null)); // put at top of list (before manager)
+ if(rpcResult.attached_via_acct_mgr) data.add(new ProjectsListData(rpcResult,null, mapTransfersToProject(rpcResult.master_url, ongoingTransfers))); // append to end of list (after manager)
+ else data.add(0, new ProjectsListData(rpcResult,null, mapTransfersToProject(rpcResult.master_url, ongoingTransfers))); // put at top of list (before manager)
} else { // result was present before, update its data
- data.get(index).updateProjectData(rpcResult,null);
+ data.get(index).updateProjectData(rpcResult,null,mapTransfersToProject(rpcResult.master_url, ongoingTransfers));
}
}
@@ -241,6 +246,7 @@ public class ProjectsActivity extends FragmentActivity {
if(!found) iData.remove();
}
+ // SERVER NOTICES
// loop through active projects to add/remove server notices
if(serverNotices != null) {
int mappedServerNotices = 0;
@@ -261,6 +267,19 @@ public class ProjectsActivity extends FragmentActivity {
}
}
+ // takes list of all ongoing transfers and a project id (url) and returns transfer that belong to given project
+ private ArrayList<Transfer> mapTransfersToProject(String id, ArrayList<Transfer> allTransfers) {
+ ArrayList<Transfer> projectTransfers = new ArrayList<Transfer>();
+ for(Transfer trans: allTransfers) {
+ if(trans.project_url.equals(id)) {
+ // project id matches url in transfer, add to list
+ projectTransfers.add(trans);
+ }
+ }
+ if(Logging.VERBOSE) Log.d(Logging.TAG, "ProjectsActivity mapTransfersToProject() mapped " + projectTransfers.size() + " transfers to project " + id);
+ return projectTransfers;
+ }
+
private void setLayoutLoading() {
setContentView(R.layout.generic_layout_loading);
TextView loadingHeader = (TextView)findViewById(R.id.loading_header);
@@ -305,13 +324,15 @@ public class ProjectsActivity extends FragmentActivity {
public Project project = null;
public Notice lastServerNotice = null;
public AcctMgrInfo acctMgrInfo = null;
+ public ArrayList<Transfer> projectTransfers = null;
public String id = ""; // == url
public boolean isMgr;
public ProjectsListData listEntry = this;
- public ProjectsListData(Project data, AcctMgrInfo acctMgrInfo) {
+ public ProjectsListData(Project data, AcctMgrInfo acctMgrInfo, ArrayList<Transfer> projectTransfers) {
this.project = data;
this.acctMgrInfo = acctMgrInfo;
+ this.projectTransfers = projectTransfers;
if (this.project == null && this.acctMgrInfo != null) isMgr = true;
if(isMgr) {
this.id = acctMgrInfo.acct_mgr_url;
@@ -320,11 +341,12 @@ public class ProjectsActivity extends FragmentActivity {
}
}
- public void updateProjectData(Project data, AcctMgrInfo acctMgrInfo) {
+ public void updateProjectData(Project data, AcctMgrInfo acctMgrInfo, ArrayList<Transfer> projectTransfers) {
if(isMgr){
this.acctMgrInfo = acctMgrInfo;
} else {
this.project = data;
+ this.projectTransfers = projectTransfers;
}
}
diff --git a/android/BOINC/src/edu/berkeley/boinc/TransActivity.java b/android/BOINC/src/edu/berkeley/boinc/TransActivity.java
deleted file mode 100644
index 8e9624f..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/TransActivity.java
+++ /dev/null
@@ -1,360 +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 java.util.Calendar;
-import java.util.Iterator;
-import edu.berkeley.boinc.adapter.TransListAdapter;
-import edu.berkeley.boinc.client.Monitor;
-import edu.berkeley.boinc.rpc.CcStatus;
-import edu.berkeley.boinc.rpc.RpcClient;
-import edu.berkeley.boinc.rpc.Transfer;
-import edu.berkeley.boinc.utils.BOINCErrors;
-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.os.AsyncTask;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.support.v4.app.FragmentActivity;
-import android.util.Log;
-import android.view.View;
-import android.view.Window;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.ListView;
-import android.widget.TextView;
-
-public class TransActivity extends FragmentActivity {
-
- private Monitor monitor;
- private Boolean mIsBound = false;
-
- private ListView lv;
- private TransListAdapter listAdapter;
- private ArrayList<TransferData> data = new ArrayList<TransferData>();
- private CcStatus status;
- private FragmentActivity activity = this;
-
- // Controls whether initialization of view elements of "projects_layout"
- // is required. This is the case, every time the layout switched.
- private Boolean setup = false;
-
- // This is called when the connection with the service has been established,
- // getService returns the Monitor object that is needed to call functions.
- //
- private ServiceConnection mConnection = new ServiceConnection() {
- public void onServiceConnected(ComponentName className, IBinder service) {
- monitor = ((Monitor.LocalBinder)service).getService();
- mIsBound = true;
- }
-
- public void onServiceDisconnected(ComponentName className) {
- monitor = null;
- mIsBound = false;
- }
- };
-
- // BroadcastReceiver event is used to update the UI with updated information from
- // the client. This is generally called once a second.
- //
- private IntentFilter ifcsc = new IntentFilter("edu.berkeley.boinc.clientstatuschange");
- private BroadcastReceiver mClientStatusChangeRec = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- if(Logging.VERBOSE) Log.v(Logging.TAG, "TransActivity ClientStatusChange - onReceive()");
-
- populateLayout();
- }
- };
-
- public void onCreate(Bundle savedInstanceState) {
- if(Logging.DEBUG) Log.d(Logging.TAG, "TransActivity onCreate()");
-
- super.onCreate(savedInstanceState);
-
- // Establish a connection with the service, onServiceConnected gets called when
- // (calling within Tab needs getApplicationContext() for bindService to work!)
- getApplicationContext().bindService(new Intent(this, Monitor.class), mConnection, Service.START_STICKY_COMPATIBILITY);
- }
-
- public void onPause() {
- if(Logging.DEBUG) Log.d(Logging.TAG, "TransActivity onPause()");
-
- unregisterReceiver(mClientStatusChangeRec);
- super.onPause();
- }
-
- public void onResume() {
- if(Logging.DEBUG) Log.d(Logging.TAG, "TransActivity onResume()");
-
- super.onResume();
-
- // Switch to the loading view until we have something to display
- populateLayout();
-
- registerReceiver(mClientStatusChangeRec, ifcsc);
- }
-
- @Override
- protected void onDestroy() {
- if(Logging.DEBUG) Log.d(Logging.TAG, "TransActivity onDestroy()");
-
- if (mIsBound) {
- getApplicationContext().unbindService(mConnection);
- mIsBound = false;
- }
-
- super.onDestroy();
- }
-
- private void populateLayout() {
- try {
- // Read transfers from state saved in ClientStatus
- ArrayList<Transfer> tmpA = Monitor.getClientStatus().getTransfers();
-
- // Read core client status (net up/down, cpu suspended, network suspended) from
- // state saved in ClientStatus
- status = Monitor.getClientStatus().getClientStatus();
-
- if(tmpA == null || status == null) {
- setLayoutLoading();
- return;
- }
-
- //deep copy, so ArrayList adapter actually recognizes the difference
- updateData(tmpA);
-
- // Switch to a view that can actually display messages
- if (!setup) {
- setup = true;
- setContentView(R.layout.trans_layout);
- lv = (ListView) findViewById(R.id.transList);
- listAdapter = new TransListAdapter(TransActivity.this, lv, R.id.projectsList, data, status);
- }
-
- // Force list adapter to refresh
- listAdapter.notifyDataSetChanged();
- } catch (Exception e) {
- // data retrieval failed, set layout to loading...
- setLayoutLoading();
- }
- }
-
- private void setLayoutLoading() {
- setContentView(R.layout.generic_layout_loading);
- TextView loadingHeader = (TextView)findViewById(R.id.loading_header);
- loadingHeader.setText(R.string.trans_loading);
- setup = false;
- }
-
- public void onTransferClicked(String url, String name) {
- if(Logging.DEBUG) Log.d(Logging.TAG, "onTransferClicked()");
- }
-
- public void onTransferRetry(String url, String name) {
- if(Logging.DEBUG) Log.d(Logging.TAG, "onTransferRetry()");
- monitor.retryTransferAsync(url, name);
- }
-
- private void updateData(ArrayList<Transfer> newData) {
- //loop through all received Result items to add new results
- for(Transfer transfer: newData) {
- //check whether this Result is new
- Integer index = null;
- for(int x = 0; x < data.size(); x++) {
- if(transfer.name.equals(data.get(x).id)) {
- index = x;
- continue;
- }
- }
- if(index == null) { // result is new, add
- if(Logging.DEBUG) Log.d(Logging.TAG,"new transfer found, id: " + transfer.name);
- data.add(new TransferData(transfer));
- } else { // result was present before, update its data
- data.get(index).updateTransferData(transfer);
- }
- }
- //loop through the list adapter to find removed (ready/aborted) transfers
- // use iterator to safely remove while iterating
- Iterator<TransferData> iData = data.iterator();
- while(iData.hasNext()) {
- Boolean found = false;
- TransferData listItem = iData.next();
- for(Transfer rpcResult: newData) {
- if(listItem.id.equals(rpcResult.name)) {
- found = true;
- continue;
- }
- }
-
- if(!found) iData.remove();
- }
- }
-
- public class TransferData {
- public Transfer transfer = null;
- public boolean expanded = false;
- public String id = "";
- public int expectedState = -1;
- public int loopCounter = 0;
- public int transistionTimeout = 10; // amount of refresh, until transition times out
-
- public static final int TRANSFER_ABORTED = 0;
- public static final int TRANSFER_ONGOING = 1;
- public static final int TRANSFER_SUSPENDED = 2;
- public static final int TRANSFER_RETRYING = 3;
- public static final int TRANSFER_FAILED = 4;
-
- public TransferData(Transfer data) {
- this.transfer = data;
- this.expanded = false;
- this.id = data.name;
- this.transistionTimeout = getResources().getInteger(R.integer.tasks_transistion_timeout_number_monitor_loops);
- }
-
- public void updateTransferData(Transfer data) {
- this.transfer = data;
- Integer currentState = determineState();
- if (expectedState == -1) return;
- if(currentState == expectedState) {
- if(Logging.DEBUG) Log.d(Logging.TAG,"expectedState met! " + expectedState);
- expectedState = -1;
- loopCounter = 0;
- } else {
- if(loopCounter<transistionTimeout) {
- if(Logging.DEBUG) Log.d(Logging.TAG,"expectedState not met yet! " + expectedState + " vs " + currentState + " loopCounter: " + loopCounter);
- loopCounter++;
- } else {
- if(Logging.DEBUG) Log.d(Logging.TAG,"transition timed out! " + expectedState + " vs " + currentState + " loopCounter: " + loopCounter);
- expectedState = -1;
- loopCounter = 0;
- }
- }
- }
-
- public final OnClickListener transClickListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- expanded = !expanded;
- listAdapter.notifyDataSetChanged(); //force list adapter to refresh
- }
- };
-
- public final OnClickListener iconClickListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- final Integer operation = (Integer)v.getTag();
- switch(operation) {
- case RpcClient.TRANSFER_RETRY:
- expectedState = TRANSFER_ONGOING;
- new TransferOperationAsync().execute(transfer.project_url, transfer.name, operation.toString());
- break;
- case RpcClient.TRANSFER_ABORT:
- final Dialog dialog = new Dialog(activity);
- dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
- dialog.setContentView(R.layout.dialog_confirm);
- Button confirm = (Button) dialog.findViewById(R.id.confirm);
- TextView tvTitle = (TextView)dialog.findViewById(R.id.title);
- TextView tvMessage = (TextView)dialog.findViewById(R.id.message);
-
- tvTitle.setText(R.string.confirm_abort_trans_title);
- tvMessage.setText(getString(R.string.confirm_abort_trans_message) + " "
- + transfer.name);
- confirm.setText(R.string.confirm_abort_trans_confirm);
- confirm.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- expectedState = TRANSFER_ABORTED;
- new TransferOperationAsync().execute(transfer.project_url, transfer.name, operation.toString());
- dialog.dismiss();
- }
- });
- Button cancel = (Button) dialog.findViewById(R.id.cancel);
- cancel.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- dialog.dismiss();
- }
- });
- dialog.show();
- break;
- default:
- if(Logging.WARNING) Log.w(Logging.TAG,"could not map operation tag");
- }
- listAdapter.notifyDataSetChanged(); //force list adapter to refresh
- } catch (Exception e) {if(Logging.WARNING) Log.w(Logging.TAG,"failed parsing view tag");}
- }
- };
-
- public int determineState() {
-
- Calendar nextRequest = Calendar.getInstance();
- Calendar now = Calendar.getInstance();
- nextRequest.setTimeInMillis((long)transfer.next_request_time*1000);
-
- if (nextRequest.compareTo(now) > 0) {
- return TRANSFER_RETRYING;
- } else if (transfer.status == BOINCErrors.ERR_GIVEUP_DOWNLOAD || transfer.status == BOINCErrors.ERR_GIVEUP_UPLOAD) {
- return TRANSFER_FAILED;
- } else {
- if (status.network_suspend_reason > 0) {
- return TRANSFER_SUSPENDED;
- } else {
- return TRANSFER_ONGOING;
- }
- }
- }
- }
-
- private final class TransferOperationAsync extends AsyncTask<String,Void,Boolean> {
-
- private final String TAG = "TransferOperationAsync";
-
- @Override
- protected Boolean doInBackground(String... params) {
- try{
- String url = params[0];
- String name = params[1];
- Integer operation = Integer.parseInt(params[2]);
- Log.d(TAG,"url: " + url + " Name: " + name + " operation: " + operation);
-
- if(mIsBound) return monitor.transferOperation(url, name, operation);
- else return false;
- } catch(Exception e) {Log.w(TAG,"error in do in background",e);}
-
- return false;
- }
-
- @Override
- protected void onPostExecute(Boolean success) {
- if(success) monitor.forceRefresh();
- else Log.w(TAG,"failed.");
- }
- }
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/NoticesListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/NoticesListAdapter.java
new file mode 100644
index 0000000..5af8b78
--- /dev/null
+++ b/android/BOINC/src/edu/berkeley/boinc/adapter/NoticesListAdapter.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * 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.R;
+import edu.berkeley.boinc.client.ClientStatus;
+import edu.berkeley.boinc.client.Monitor;
+import edu.berkeley.boinc.rpc.Notice;
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.text.Html;
+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.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) {
+
+ 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)));
+
+ // set tag for onClic
+ if(!listItem.link.isEmpty()) v.setTag(listItem.link);
+
+ return v;
+ }
+
+ private Bitmap getIcon(int position) {
+ // try to get current client status from monitor
+ ClientStatus status;
+ try{
+ status = Monitor.getClientStatus();
+ } 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/ProjectsListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java
index 1c26760..2316f72 100644
--- a/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java
+++ b/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java
@@ -37,7 +37,9 @@ import edu.berkeley.boinc.ProjectsActivity.ProjectsListData;
import edu.berkeley.boinc.R;
import edu.berkeley.boinc.client.ClientStatus;
import edu.berkeley.boinc.client.Monitor;
+import edu.berkeley.boinc.rpc.Notice;
import edu.berkeley.boinc.rpc.Project;
+import edu.berkeley.boinc.rpc.Transfer;
import edu.berkeley.boinc.utils.BOINCUtils;
import edu.berkeley.boinc.utils.Logging;
@@ -228,6 +230,53 @@ public class ProjectsListAdapter extends ArrayAdapter<ProjectsListData> {
}
}
+ // 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 retryInMs = nextRetryS * 1000;
+ activityExplanation += activity.getResources().getString(R.string.trans_retryin) + " " +
+ DateUtils.formatElapsedTime((retryInMs - Calendar.getInstance().getTimeInMillis()) / 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();
@@ -238,6 +287,17 @@ public class ProjectsListAdapter extends ArrayAdapter<ProjectsListData> {
+ 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) {
diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/TransListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/TransListAdapter.java
deleted file mode 100644
index 8a8066b..0000000
--- a/android/BOINC/src/edu/berkeley/boinc/adapter/TransListAdapter.java
+++ /dev/null
@@ -1,325 +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.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.ListView;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-import edu.berkeley.boinc.R;
-import edu.berkeley.boinc.TransActivity.TransferData;
-import edu.berkeley.boinc.client.ClientStatus;
-import edu.berkeley.boinc.client.Monitor;
-import edu.berkeley.boinc.rpc.Project;
-import edu.berkeley.boinc.rpc.RpcClient;
-import edu.berkeley.boinc.rpc.Transfer;
-import edu.berkeley.boinc.rpc.CcStatus;
-import edu.berkeley.boinc.utils.BOINCErrors;
-import edu.berkeley.boinc.utils.BOINCUtils;
-import edu.berkeley.boinc.utils.Logging;
-
-public class TransListAdapter extends ArrayAdapter<TransferData> implements OnItemClickListener {
-
- private ArrayList<TransferData> entries;
- private CcStatus status;
- private Activity activity;
-
- public TransListAdapter(Activity activity, ListView listView, int textViewResourceId, ArrayList<TransferData> entries, CcStatus status) {
- super(activity, textViewResourceId, entries);
- this.entries = entries;
- this.status = status;
- this.activity = activity;
-
- listView.setAdapter(this);
- listView.setOnItemClickListener(this);
- listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
- }
-
- @Override
- public int getCount() {
- return entries.size();
- }
-
- @Override
- public TransferData getItem(int position) {
- return entries.get(position);
- }
-
- @Override
- public long getItemId(int position) {
- return position;
- }
-
- public String getName(int position) {
- return entries.get(position).transfer.name;
- }
-
- public String getProjectURL(int position) {
- return entries.get(position).transfer.project_url;
- }
-
- public int getProgress(int position) {
- Transfer transfer = getItem(position).transfer;
- float fBytesSent = transfer.bytes_xferred;
- float fFileSize = transfer.nbytes;
- double dBuffer = 0.0;
-
- // Curl apparently counts the HTTP header in byte count.
- // Prevent this from causing > 100% display
-
- if (fBytesSent > fFileSize) {
- fBytesSent = fFileSize;
- }
-
- if (fFileSize > 0.0) {
- dBuffer = Math.floor((fBytesSent / fFileSize) * 10000) / 100;
- }
-
- if ( 0 == fFileSize ) return 0;
- int progress = (int)Math.round(dBuffer);
- return progress;
- }
-
- public String getStatus(int position) {
- Transfer transfer = getItem(position).transfer;
- String buf = new String();
-
- Calendar nextRequest = Calendar.getInstance();
- Calendar now = Calendar.getInstance();
- nextRequest.setTimeInMillis((long)transfer.next_request_time*1000);
-
- if (transfer.is_upload) {
- buf += activity.getResources().getString(R.string.trans_upload);
- } else {
- buf += activity.getResources().getString(R.string.trans_download);
- }
- buf += ": ";
- if (nextRequest.compareTo(now) > 0) {
- buf += activity.getResources().getString(R.string.trans_retryin);
- buf += " ";
- buf += DateUtils.formatElapsedTime((nextRequest.getTimeInMillis() - now.getTimeInMillis()) / 1000);
- } else if (transfer.status == BOINCErrors.ERR_GIVEUP_DOWNLOAD || transfer.status == BOINCErrors.ERR_GIVEUP_UPLOAD) {
- buf = activity.getResources().getString(R.string.trans_failed);
- } else {
- if (status.network_suspend_reason > 0) {
- buf += activity.getResources().getString(R.string.trans_suspended);
- buf += " - ";
- buf += BOINCUtils.translateRPCReason(activity, status.network_suspend_reason);
- } else {
- if (transfer.xfer_active) {
- buf += activity.getResources().getString(R.string.trans_active);
- } else {
- buf += activity.getResources().getString(R.string.trans_pending);
- }
- }
- }
- if (transfer.project_backoff > 0) {
- buf += " (";
- buf += activity.getResources().getString(R.string.trans_projectbackoff);
- buf += ": ";
- buf += DateUtils.formatElapsedTime(transfer.project_backoff);
- buf += ")";
- }
-
- return buf;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
-
- TransferData 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 li = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- v = li.inflate(R.layout.trans_layout_listitem, null);
- v.setOnClickListener(entries.get(position).transClickListener);
- v.setTag(listItem.id);
- }
-
- 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 transferName = (TextView)v.findViewById(R.id.transName);
- ProgressBar progressBar = (ProgressBar)v.findViewById(R.id.progressBar);
- TextView statusText = (TextView)v.findViewById(R.id.transStatus);
-
- progressBar.setIndeterminate(false);
- progressBar.setProgressDrawable(this.activity.getResources()
- .getDrawable((determineProgressBarLayout(listItem))));
- progressBar.setProgress(getProgress(position));
-
- TextView header = (TextView) v.findViewById(R.id.transHeader);
- String headerT = listItem.transfer.project_url;
-
- // try to get readable project name from ClientStatus
- try{
- ClientStatus status = Monitor.getClientStatus();
- ArrayList<Project> projects = status.getProjects();
-
- //Does a search for the real project name
- int i = 0;
- for(i = 0; i < projects.size(); i++) {
- if(projects.get(i).master_url.equalsIgnoreCase(listItem.transfer.project_url)) {
- headerT = projects.get(i).getName();
- }
- }
- } catch (Exception e){
- if(Logging.WARNING) Log.w(Logging.TAG,"TransListAdapter: Could not load data, clientStatus not initialized.");
- }
-
- header.setText(headerT);
-
- // set project name
- String tempProjectName = listItem.transfer.project_url;
- ((TextView) v.findViewById(R.id.projectName)).setText(tempProjectName);
-
- String statusT = determineStatusText(listItem);
- statusText.setText(statusT);
-
- //TODO: should there be elapsed time text?
-
- LinearLayout ll = (LinearLayout) v.findViewById(R.id.expansion);
- if (listItem.expanded) {
- ((ImageView)v.findViewById(R.id.expandCollapse)).setImageResource(R.drawable.collapse);
- ll.setVisibility(View.VISIBLE);
-
- transferName.setText(getName(position));
-
- if(listItem.determineState() == TransferData.TRANSFER_ABORTED) { //don't show buttons for aborted transfer
- // TODO: this state will never be reached, since nothing returns TRANSFER_ABORTED for now
- ((LinearLayout)v.findViewById(R.id.requestPendingWrapper)).setVisibility(View.GONE);
- ((LinearLayout)v.findViewById(R.id.transButtons)).setVisibility(View.INVISIBLE);
- } else {
-
- ImageView abortButton = (ImageView) v.findViewById(R.id.abortTrans);
- abortButton.setOnClickListener(listItem.iconClickListener);
- abortButton.setTag(RpcClient.TRANSFER_ABORT); // tag on button specified operation triggered in iconClickListener
-
- if (listItem.expectedState == -1) { // not waiting for new state
- ((LinearLayout)v.findViewById(R.id.requestPendingWrapper)).setVisibility(View.GONE);
- ((LinearLayout)v.findViewById(R.id.transButtons)).setVisibility(View.VISIBLE);
- } else {
- ((LinearLayout)v.findViewById(R.id.transButtons)).setVisibility(View.INVISIBLE);
- ((LinearLayout)v.findViewById(R.id.requestPendingWrapper)).setVisibility(View.VISIBLE);
- }
- }
- } else {
- ((ImageView)v.findViewById(R.id.expandCollapse)).setImageResource(R.drawable.expand);
- ll.setVisibility(View.GONE);
- }
-
- return v;
- }
-
- public Bitmap getIcon(int position) {
- // try to get current client status from monitor
- ClientStatus status;
- try{
- status = Monitor.getClientStatus();
- } 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).transfer.project_url);
- }
-
- public void onItemClick(AdapterView<?> adapter, View view, int position, long id ) {
- }
-
- private String determineStatusText(TransferData tmp) {
- Transfer transfer = tmp.transfer;
- String buf = new String();
-
- Calendar nextRequest = Calendar.getInstance();
- Calendar now = Calendar.getInstance();
- nextRequest.setTimeInMillis((long)transfer.next_request_time*1000);
-
- if (transfer.is_upload) {
- buf += activity.getResources().getString(R.string.trans_upload);
- } else {
- buf += activity.getResources().getString(R.string.trans_download);
- }
- buf += ": ";
- if (nextRequest.compareTo(now) > 0) {
- buf += activity.getResources().getString(R.string.trans_retryin);
- buf += " ";
- buf += DateUtils.formatElapsedTime((nextRequest.getTimeInMillis() - now.getTimeInMillis()) / 1000);
- } else if (transfer.status == BOINCErrors.ERR_GIVEUP_DOWNLOAD || transfer.status == BOINCErrors.ERR_GIVEUP_UPLOAD) {
- buf = activity.getResources().getString(R.string.trans_failed);
- } else {
- if (status.network_suspend_reason > 0) {
- buf += activity.getResources().getString(R.string.trans_suspended);
- buf += " - ";
- buf += BOINCUtils.translateNetworkSuspendReason(getContext(), status.network_suspend_reason);
- } else {
- if (transfer.xfer_active) {
- buf += activity.getResources().getString(R.string.trans_active);
- } else {
- buf += activity.getResources().getString(R.string.trans_pending);
- }
- }
- }
-
- if (transfer.project_backoff > 0) {
- buf += " (";
- buf += activity.getResources().getString(R.string.trans_projectbackoff);
- buf += ": ";
- buf += DateUtils.formatElapsedTime(transfer.project_backoff);
- buf += ")";
- }
-
- return buf;
- }
-
- private Integer determineProgressBarLayout(TransferData tmp) {
- return R.drawable.progressbar;
- }
-}
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java b/android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java
index 396e629..65289b9 100644
--- a/android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java
+++ b/android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java
@@ -382,6 +382,32 @@ public class ClientStatus {
return null;
}
+ // returns project icon for given project name
+ // bitmap: 40 * 40 pixel, symbolic link in /projects/PNAME/stat_icon
+ public synchronized Bitmap getProjectIconByName (String projectName) {
+ if(Logging.VERBOSE) Log.v(Logging.TAG, "getProjectIconByName for: " + projectName);
+ try{
+ // loop through all projects
+ for (Project project: projects) {
+ if(project.project_name.equals(projectName)) {
+ // read file name of icon
+ String iconAbsPath = parseSoftLinkToAbsPath(project.project_dir + "/stat_icon", project.project_dir);
+ if (iconAbsPath == null) {
+ if(Logging.VERBOSE) Log.v(Logging.TAG, "getProjectIconByName could not parse sym link for project: " + projectName);
+ return null;
+ }
+ //if(Logging.DEBUG) Log.d(Logging.TAG, "getProjectIcons() absolute path to icon: " + iconAbsPath);
+ Bitmap icon = BitmapFactory.decodeFile(iconAbsPath);
+ return icon;
+ }
+ }
+ } catch (Exception e) {
+ if(Logging.WARNING) Log.w(Logging.TAG, "getProjectIconByName failed", e);
+ }
+ if(Logging.WARNING) Log.w(Logging.TAG, "getProjectIconByName: project not found.");
+ return null;
+ }
+
// returns a string describing the current client status.
// use this method, to harmonize UI text, e.g. in Notification, Status Tab, App Title.
public String getCurrentStatusString() {
diff --git a/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java b/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java
index 8be4bf6..d102171 100644
--- a/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java
+++ b/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java
@@ -1213,6 +1213,12 @@ public class Monitor extends Service {
return rpc.getMessages(seqNo);
}
+ // returns notices
+ public ArrayList<Notice> getNotices() {
+ return rpc.getNotices(0);
+ }
+
+
// returns notices sent by the project server / scheduler
// i.e. when scheduler request does not satisfy minimal requirements
public ArrayList<Notice> getServerNotices() {
diff --git a/android/BOINC/src/edu/berkeley/boinc/rpc/NoticesParser.java b/android/BOINC/src/edu/berkeley/boinc/rpc/NoticesParser.java
index 689636a..16591c5 100644
--- a/android/BOINC/src/edu/berkeley/boinc/rpc/NoticesParser.java
+++ b/android/BOINC/src/edu/berkeley/boinc/rpc/NoticesParser.java
@@ -81,11 +81,7 @@ public class NoticesParser extends BaseParser {
} else if (localName.equalsIgnoreCase("title")) {
mNotice.title = mCurrentElement.toString();
} else if (localName.equalsIgnoreCase("description")) {
- String current = mCurrentElement.toString();
- if (current.startsWith("<![CDATA["))
- mNotice.description = current.substring(8, current.length()-3);
- else
- mNotice.description = current;
+ mNotice.description = mCurrentElement.toString();
} else if (localName.equalsIgnoreCase("create_time")) {
mNotice.create_time = Double.parseDouble(mCurrentElement.toString());
} else if (localName.equalsIgnoreCase("arrival_time")) {
diff --git a/client/app_start.cpp b/client/app_start.cpp
index 365b65d..ef4fe9b 100644
--- a/client/app_start.cpp
+++ b/client/app_start.cpp
@@ -244,6 +244,7 @@ void ACTIVE_TASK::init_app_init_data(APP_INIT_DATA& aid) {
aid.global_prefs = gstate.global_prefs;
aid.starting_elapsed_time = checkpoint_elapsed_time;
aid.using_sandbox = g_use_sandbox;
+ aid.vm_extensions_disabled = gstate.host_info.p_vm_extensions_disabled;
aid.rsc_fpops_est = wup->rsc_fpops_est;
aid.rsc_fpops_bound = wup->rsc_fpops_bound;
aid.rsc_memory_bound = wup->rsc_memory_bound;
diff --git a/client/gpu_detect.cpp b/client/gpu_detect.cpp
index 76b66e0..3b2cb84 100644
--- a/client/gpu_detect.cpp
+++ b/client/gpu_detect.cpp
@@ -18,7 +18,7 @@
// client-specific GPU code. Mostly GPU detection
-#ifndef _WIN32
+#ifndef _DEBUG
#define USE_CHILD_PROCESS_TO_DETECT_GPUS 1
#endif
@@ -168,9 +168,7 @@ void COPROCS::correlate_gpus(
intel_gpu.correlate(use_all, ignore_gpu_instance[PROC_TYPE_AMD_GPU]);
correlate_opencl(use_all, ignore_gpu_instance);
- // NOTE: OpenCL has only 64 bits for global_mem_size,
- // so it can report a max of only 4GB.
- // Get the CPU RAM size from gstate.hostinfo.m_nbytes.
+ // NOTE: OpenCL can report a max of only 4GB.
for (i=0; i<cpu_opencls.size(); i++) {
gstate.host_info.cpu_opencl_prop[gstate.host_info.num_cpu_opencl_platforms++] = cpu_opencls[i];
}
@@ -250,6 +248,13 @@ void COPROCS::correlate_gpus(
descs.push_back(string(buf));
}
+ // Create descriptions for OpenCL CPUs
+ //
+ for (i=0; i<cpu_opencls.size(); i++) {
+ cpu_opencls[i].description(buf, sizeof(buf));
+ descs.push_back(string(buf));
+ }
+
ati_gpus.clear();
nvidia_gpus.clear();
intel_gpus.clear();
diff --git a/client/gpu_opencl.cpp b/client/gpu_opencl.cpp
index 8e8572b..a5b5593 100644
--- a/client/gpu_opencl.cpp
+++ b/client/gpu_opencl.cpp
@@ -107,6 +107,8 @@ static bool is_NVIDIA(char* vendor) {
static bool is_intel(char* vendor) {
if (strcasestr(vendor, "intel")) return true;
+ if (strcasestr(vendor, "GenuineIntel")) return true;
+ if (strcasestr(vendor, "Intel(R) Corporation")) return true;
return false;
}
diff --git a/client/sysmon_win.cpp b/client/sysmon_win.cpp
index 7d25d1b..b1fc763 100644
--- a/client/sysmon_win.cpp
+++ b/client/sysmon_win.cpp
@@ -186,6 +186,10 @@ static DWORD WINAPI WindowsMonitorSystemPowerThread( LPVOID ) {
WNDCLASS wc;
MSG msg;
+ // Initialize diagnostics framework for this thread
+ //
+ diagnostics_thread_init(BOINC_DIAG_DEFAULTS);
+
wc.style = CS_GLOBALCLASS;
wc.lpfnWndProc = (WNDPROC)WindowsMonitorSystemPowerWndProc;
wc.cbClsExtra = 0;
@@ -359,7 +363,11 @@ static void windows_detect_autoproxy_settings() {
}
static DWORD WINAPI WindowsMonitorSystemProxyThread( LPVOID ) {
-
+
+ // Initialize diagnostics framework for this thread
+ //
+ diagnostics_thread_init(BOINC_DIAG_DEFAULTS);
+
// notify the main client thread that detecting proxies is
// supported.
working_proxy_info.autodetect_proxy_supported = true;
diff --git a/configure.ac b/configure.ac
index a760131..cb5631f 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.2.17)
+AC_INIT(BOINC, 7.2.22)
AC_CONFIG_MACRO_DIR([m4])
LIBBOINC_VERSION=`echo ${PACKAGE_VERSION} | sed 's/\./:/g'`
AC_SUBST([LIBBOINC_VERSION])
diff --git a/lib/app_ipc.cpp b/lib/app_ipc.cpp
index 631f348..3aa6066 100644
--- a/lib/app_ipc.cpp
+++ b/lib/app_ipc.cpp
@@ -97,6 +97,7 @@ void APP_INIT_DATA::copy(const APP_INIT_DATA& a) {
global_prefs = a.global_prefs;
starting_elapsed_time = a.starting_elapsed_time;
using_sandbox = a.using_sandbox;
+ vm_extensions_disabled = a.vm_extensions_disabled;
rsc_fpops_est = a.rsc_fpops_est;
rsc_fpops_bound = a.rsc_fpops_bound;
rsc_memory_bound = a.rsc_memory_bound;
@@ -185,6 +186,7 @@ int write_init_data_file(FILE* f, APP_INIT_DATA& ai) {
"<wu_cpu_time>%f</wu_cpu_time>\n"
"<starting_elapsed_time>%f</starting_elapsed_time>\n"
"<using_sandbox>%d</using_sandbox>\n"
+ "<vm_extensions_disabled>%d</vm_extensions_disabled>"
"<user_total_credit>%f</user_total_credit>\n"
"<user_expavg_credit>%f</user_expavg_credit>\n"
"<host_total_credit>%f</host_total_credit>\n"
@@ -209,6 +211,7 @@ int write_init_data_file(FILE* f, APP_INIT_DATA& ai) {
ai.wu_cpu_time,
ai.starting_elapsed_time,
ai.using_sandbox?1:0,
+ ai.vm_extensions_disabled?1:0,
ai.user_total_credit,
ai.user_expavg_credit,
ai.host_total_credit,
@@ -269,6 +272,7 @@ void APP_INIT_DATA::clear() {
global_prefs.defaults();
starting_elapsed_time = 0;
using_sandbox = false;
+ vm_extensions_disabled = false;
rsc_fpops_est = 0;
rsc_fpops_bound = 0;
rsc_memory_bound = 0;
@@ -379,6 +383,7 @@ int parse_init_data_file(FILE* f, APP_INIT_DATA& ai) {
if (xp.parse_double("wu_cpu_time", ai.wu_cpu_time)) continue;
if (xp.parse_double("starting_elapsed_time", ai.starting_elapsed_time)) continue;
if (xp.parse_bool("using_sandbox", ai.using_sandbox)) continue;
+ if (xp.parse_bool("vm_extensions_disabled", ai.vm_extensions_disabled)) continue;
if (xp.parse_double("checkpoint_period", ai.checkpoint_period)) continue;
if (xp.parse_str("gpu_type", ai.gpu_type, sizeof(ai.gpu_type))) continue;
if (xp.parse_int("gpu_device_num", ai.gpu_device_num)) continue;
diff --git a/lib/app_ipc.h b/lib/app_ipc.h
index 50a566c..d0e3ae5 100644
--- a/lib/app_ipc.h
+++ b/lib/app_ipc.h
@@ -137,37 +137,42 @@ public:
// If you add anything here, update copy()
//
struct APP_INIT_DATA {
- int major_version;
+ int major_version; // BOINC client version info
int minor_version;
int release;
int app_version;
char app_name[256];
- char symstore[256];
+ char symstore[256]; // symstore URL (Windows)
char acct_mgr_url[256];
+ // if client is using account manager, its URL
char* project_preferences;
+ // project prefs XML
int userid;
+ // project's DB ID for this user/team/host
int teamid;
int hostid;
- // project's DB ID for this host (NOT host CPID)
char user_name[256];
char team_name[256];
- char project_dir[256];
- char boinc_dir[256];
- char wu_name[256];
+ char project_dir[256]; // where project files are stored on host
+ char boinc_dir[256]; // BOINC data directory
+ char wu_name[256]; // workunit name
char result_name[256];
- char authenticator[256];
- int slot;
- int client_pid;
+ char authenticator[256]; // user's authenticator
+ int slot; // the slot this job is running in (0, 1, ...)
+ int client_pid; // process ID of BOINC client
double user_total_credit;
double user_expavg_credit;
double host_total_credit;
double host_expavg_credit;
- double resource_share_fraction;
+ double resource_share_fraction; // this project's resource share frac
HOST_INFO host_info;
- PROXY_INFO proxy_info; // in case app wants to use network
+ PROXY_INFO proxy_info; // in case app wants to use network
GLOBAL_PREFS global_prefs;
double starting_elapsed_time; // elapsed time, counting previous episodes
- bool using_sandbox; // client is using account-based sandboxing
+ bool using_sandbox; // client is using account-based sandboxing
+ bool vm_extensions_disabled;
+ // client has already been notified that the VM extensions of
+ // the processor have been disabled
// info about the WU
double rsc_fpops_est;
@@ -195,10 +200,9 @@ struct APP_INIT_DATA {
// client configuration info
//
- bool vbox_window;
+ bool vbox_window; // whether to open a console window for VM apps
- // Items below here are for BOINC runtime system,
- // and should not be directly accessed by apps
+ // Items used by the BOINC runtime system
//
double checkpoint_period; // recommended checkpoint period
SHMEM_SEG_NAME shmem_seg_name;
diff --git a/lib/diagnostics.cpp b/lib/diagnostics.cpp
index c00a670..d22ab30 100644
--- a/lib/diagnostics.cpp
+++ b/lib/diagnostics.cpp
@@ -381,6 +381,14 @@ int diagnostics_init(
return BOINC_SUCCESS;
}
+int diagnostics_thread_init( int _flags ) {
+ // Install unhandled exception filters and signal traps.
+ if (BOINC_SUCCESS != boinc_install_signal_handlers()) {
+ return ERR_SIGNAL_OP;
+ }
+
+ return BOINC_SUCCESS;
+}
// Cleanup the diagnostic framework before dumping any memory leaks.
//
diff --git a/lib/diagnostics.h b/lib/diagnostics.h
index 46f65d6..f22c825 100644
--- a/lib/diagnostics.h
+++ b/lib/diagnostics.h
@@ -76,6 +76,7 @@ extern int boinc_finish_diag();
extern int diagnostics_init(
int flags, const char* stdout_prefix, const char* stderr_prefix
);
+extern int diagnostics_thread_init( int flags );
extern int diagnostics_finish();
extern int diagnostics_is_initialized();
extern int diagnostics_is_flag_set(int flags);
diff --git a/lib/opencl_boinc.cpp b/lib/opencl_boinc.cpp
index d0c1134..c4d0982 100644
--- a/lib/opencl_boinc.cpp
+++ b/lib/opencl_boinc.cpp
@@ -312,3 +312,15 @@ int OPENCL_CPU_PROP::parse(XML_PARSER& xp) {
return ERR_XML_PARSE;
}
+void OPENCL_CPU_PROP::description(char* buf, int buflen) {
+ char s1[256];
+ int n;
+ // openCL_device_version may have a trailing space
+ strlcpy(s1, opencl_prop.opencl_device_version, sizeof(s1));
+ n = (int)strlen(s1) - 1;
+ if ((n > 0) && (s1[n] == ' ')) s1[n] = '\0';
+ snprintf(buf, buflen,
+ "OpenCL CPU: %s (OpenCL driver vendor: %s, driver version %s, device version %s)",
+ opencl_prop.name, platform_vendor, opencl_prop.opencl_driver_version, s1
+ );
+}
diff --git a/lib/opencl_boinc.h b/lib/opencl_boinc.h
index 9cc0c3f..e2ac403 100644
--- a/lib/opencl_boinc.h
+++ b/lib/opencl_boinc.h
@@ -15,8 +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 OPENCL_BOINC_H
+#define OPENCL_BOINC_H
#include "cl_boinc.h"
+#include "miofile.h"
+#include "parse.h"
#define MAX_OPENCL_PLATFORMS 16
#define MAX_OPENCL_CPU_PLATFORMS 4
@@ -80,5 +84,7 @@ struct OPENCL_CPU_PROP {
void clear();
void write_xml(MIOFILE&);
int parse(XML_PARSER&);
-
+ void description(char* buf, int buflen);
};
+
+#endif
diff --git a/locale/bg/BOINC-Android.po b/locale/bg/BOINC-Android.po
index 5c2ef54..1c9cdd2 100644
--- a/locale/bg/BOINC-Android.po
+++ b/locale/bg/BOINC-Android.po
@@ -1,23 +1,20 @@
-# Translations template for PROJECT.
+# Bulgarian translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\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"
+"Language-Team: bg <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1379512450.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +48,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Моля въведете URL на проекта"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "По заявка на акаунт мениджъра"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Няма връзка с Интернет"
@@ -105,8 +107,8 @@ msgid ""
"By creating an account with this project, you accept the terms of use as "
"shown above."
msgstr ""
-"Със създаването на акаунт в този проект, Вие се съгласявате с условията за "
-"използване както е посочено по-горе."
+"Със създаването на акаунт в този проект, Вие се съгласявате с условията "
+"за използване както е посочено по-горе."
msgctxt "attachproject_login_category_login"
msgid "Sign in with existing account"
@@ -193,6 +195,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Създай"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "По заявка на акаунт мениджъра"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Парола:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Напишете отново:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -210,6 +240,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Паролите не съвпадат"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Моля въведете потребителско име"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Моля въведете Имейл адрес"
@@ -250,6 +285,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "Създаването на акаунт е деактивирано за този проект"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -295,6 +334,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Впишете се"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "По заявка на акаунт мениджъра"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -337,6 +385,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Предпочитания"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Навигация"
@@ -450,8 +502,8 @@ msgstr "Мин. ниво на батерия"
msgctxt "battery_charge_min_pct_description"
msgid "BOINC suspends computation below defined battery charge level."
msgstr ""
-"BOINC временно прекратява изчисленията под определено ниво на зареждане на "
-"батерията."
+"BOINC временно прекратява изчисленията под определено ниво на зареждане "
+"на батерията."
msgctxt "battery_temperature_max_header"
msgid "Max. battery temperature"
@@ -520,8 +572,8 @@ msgstr "Пауза при CPU употреба над"
msgctxt "prefs_cpu_other_load_suspension_description"
msgid "Determines when BOINC pauses computation due to other app's CPU usage."
msgstr ""
-"Определя кога BOINC прекъсва изчисленията за пауза поради употреба на CPU от "
-"други приложения."
+"Определя кога BOINC прекъсва изчисленията за пауза поради употреба на CPU"
+" от други приложения."
msgctxt "prefs_cpu_time_max_header"
msgid "CPU limit"
@@ -659,6 +711,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Нулиране"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -688,6 +752,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Нулиране"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "По заявка на акаунт мениджъра"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Сигурни ли сте, че искате да нулирате"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -843,6 +921,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Прекрати"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Прочитане на проекти…"
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1043,3 +1127,4 @@ msgid ""
msgstr ""
"© 2003–2013 Калифорнийски Университет, Бъркли.\n"
"Всички Права Запазени."
+
diff --git a/locale/bg/BOINC-Project-Generic.po b/locale/bg/BOINC-Project-Generic.po
index d7005be..c6b9577 100644
--- a/locale/bg/BOINC-Project-Generic.po
+++ b/locale/bg/BOINC-Project-Generic.po
@@ -6231,8 +6231,9 @@ msgid "Decreasing average credit"
msgstr "Средно аритметичен скорошен кредит"
#: ../user/user_search.php:69
+#, fuzzy
msgid "Decreasing total credit"
-msgstr ""
+msgstr "Средно аритметичен скорошен кредит"
#: ../user/user_search.php:100
msgid "search string must be at least 3 characters"
diff --git a/locale/ca/BOINC-Android.po b/locale/ca/BOINC-Android.po
index 0c5b8a8..47eecb6 100644
--- a/locale/ca/BOINC-Android.po
+++ b/locale/ca/BOINC-Android.po
@@ -1,23 +1,20 @@
-# Translations template for PROJECT.
+# Catalan translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-09-09 23:12+0000\n"
"Last-Translator: Xavier <xavi.mormur at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: ca\n"
+"Language-Team: ca <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1378768352.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +48,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Si us plau introdueix la URL del projecte"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Sol·licitat per l'administrador de comptes"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "No hi ha connexió a Internet"
@@ -193,6 +195,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Crear"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Sol·licitat per l'administrador de comptes"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Contrasenya:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "... Torna a entrar-ho:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -210,6 +240,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Les contrasenyes no coincideixen"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Si us plau, introdueïx el nom d'usuari"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Si us plau introdueix l'adreça de correu electrònic"
@@ -250,6 +285,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "La creació de comptes està desactivada en aquest projecte"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -295,6 +334,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Registret"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Sol·licitat per l'administrador de comptes"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -337,6 +385,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Preferències"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Navegació"
@@ -450,8 +502,8 @@ msgstr "Nivell mínim de la bateria"
msgctxt "battery_charge_min_pct_description"
msgid "BOINC suspends computation below defined battery charge level."
msgstr ""
-"BOINC atura la computació si el nivell de càrrega de la bateria per sota del "
-"definit."
+"BOINC atura la computació si el nivell de càrrega de la bateria per sota "
+"del definit."
msgctxt "battery_temperature_max_header"
msgid "Max. battery temperature"
@@ -462,8 +514,8 @@ msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
-"BOINC atura la computació si la temperatura de la bateria està per sobre del "
-"valor definit. No es recomanable canviar aquest valor."
+"BOINC atura la computació si la temperatura de la bateria està per sobre "
+"del valor definit. No es recomanable canviar aquest valor."
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
@@ -472,8 +524,8 @@ msgstr "Màxim espai d'emmagatzematge utilitzat"
msgctxt "prefs_disk_max_pct_description"
msgid "How many percent of your device's storage space is BOINC allowed to use?"
msgstr ""
-"Quin percentatge d'espai d'emmagatzematge del seu dispositiu pot utilitzar "
-"BOINC?"
+"Quin percentatge d'espai d'emmagatzematge del seu dispositiu pot "
+"utilitzar BOINC?"
msgctxt "prefs_disk_min_free_gb_header"
msgid "Min. spare storage"
@@ -520,8 +572,8 @@ msgstr "Pausa en l'ús de la CPU per sobre de"
msgctxt "prefs_cpu_other_load_suspension_description"
msgid "Determines when BOINC pauses computation due to other app's CPU usage."
msgstr ""
-"Determina quan BOINC pausa el còmput degut a la utilització de la CPU per un "
-"altra aplicació."
+"Determina quan BOINC pausa el còmput degut a la utilització de la CPU per"
+" un altra aplicació."
msgctxt "prefs_cpu_time_max_header"
msgid "CPU limit"
@@ -659,6 +711,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Reinicia"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -688,6 +752,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Reinicia"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Sol·licitat per l'administrador de comptes"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Estàs segur que vols reiniciar"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -843,6 +921,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Avorta"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "S'estan carregant els projectes..."
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1043,3 +1127,4 @@ msgid ""
msgstr ""
"© 2003–2013 Universitat de Califòrnia, Berkeley.\n"
"Tots els Drets Reservats."
+
diff --git a/locale/cs/BOINC-Android.po b/locale/cs/BOINC-Android.po
index a8f72dd..ca8a14a 100644
--- a/locale/cs/BOINC-Android.po
+++ b/locale/cs/BOINC-Android.po
@@ -1,23 +1,21 @@
-# Translations template for PROJECT.
+# Czech translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: cs\n"
+"Language-Team: cs <LL at li.org>\n"
+"Plural-Forms: nplurals=3; plural=((n == 1) ? 0 : (n >= 2 && n <= 4) ? 1 :"
+" 2)\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=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1378768352.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +49,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Si us plau introdueix la URL del projecte"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Sol·licitat per l'administrador de comptes"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "No hi ha connexió a Internet"
@@ -193,6 +196,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Crear"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Sol·licitat per l'administrador de comptes"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Contrasenya:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "... Torna a entrar-ho:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -210,6 +241,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Les contrasenyes no coincideixen"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Si us plau, introdueïx el nom d'usuari"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Si us plau introdueix l'adreça de correu electrònic"
@@ -250,6 +286,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "La creació de comptes està desactivada en aquest projecte"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -295,6 +335,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Registret"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Sol·licitat per l'administrador de comptes"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -337,6 +386,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Preferències"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Navegació"
@@ -450,8 +503,8 @@ msgstr "Nivell mínim de la bateria"
msgctxt "battery_charge_min_pct_description"
msgid "BOINC suspends computation below defined battery charge level."
msgstr ""
-"BOINC atura la computació si el nivell de càrrega de la bateria per sota del "
-"definit."
+"BOINC atura la computació si el nivell de càrrega de la bateria per sota "
+"del definit."
msgctxt "battery_temperature_max_header"
msgid "Max. battery temperature"
@@ -462,8 +515,8 @@ msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
-"BOINC atura la computació si la temperatura de la bateria està per sobre del "
-"valor definit. No es recomanable canviar aquest valor."
+"BOINC atura la computació si la temperatura de la bateria està per sobre "
+"del valor definit. No es recomanable canviar aquest valor."
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
@@ -472,8 +525,8 @@ msgstr "Màxim espai d'emmagatzematge utilitzat"
msgctxt "prefs_disk_max_pct_description"
msgid "How many percent of your device's storage space is BOINC allowed to use?"
msgstr ""
-"Quin percentatge d'espai d'emmagatzematge del seu dispositiu pot utilitzar "
-"BOINC?"
+"Quin percentatge d'espai d'emmagatzematge del seu dispositiu pot "
+"utilitzar BOINC?"
msgctxt "prefs_disk_min_free_gb_header"
msgid "Min. spare storage"
@@ -520,8 +573,8 @@ msgstr "Pausa en l'ús de la CPU per sobre de"
msgctxt "prefs_cpu_other_load_suspension_description"
msgid "Determines when BOINC pauses computation due to other app's CPU usage."
msgstr ""
-"Determina quan BOINC pausa el còmput degut a la utilització de la CPU per un "
-"altra aplicació."
+"Determina quan BOINC pausa el còmput degut a la utilització de la CPU per"
+" un altra aplicació."
msgctxt "prefs_cpu_time_max_header"
msgid "CPU limit"
@@ -659,6 +712,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Reinicia"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -688,6 +753,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Reinicia"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Sol·licitat per l'administrador de comptes"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Estàs segur que vols reiniciar"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -843,6 +922,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Avorta"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "S'estan carregant els projectes..."
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1043,3 +1128,4 @@ msgid ""
msgstr ""
"© 2003–2013 Universitat de Califòrnia, Berkeley.\n"
"Tots els Drets Reservats."
+
diff --git a/locale/da/BOINC-Android.po b/locale/da/BOINC-Android.po
index 42bd248..b2c724c 100644
--- a/locale/da/BOINC-Android.po
+++ b/locale/da/BOINC-Android.po
@@ -1,1027 +1,1124 @@
-# Translations template for PROJECT.
+# Danish translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-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: da\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-08 18:14+0000\n"
+"Last-Translator: pryds <thomas at pryds.eu>\n"
+"Language-Team: da <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
msgctxt "app_name"
msgid "BOINC"
-msgstr ""
+msgstr "BOINC"
#. generic. used by multiple Activities/tabs
msgctxt "generic_loading"
msgid "Loading! Please wait…"
-msgstr ""
+msgstr "Indlæser! Vent venligst…"
#. attach project
#. project list
msgctxt "attachproject_list_header"
msgid "Choose a project:"
-msgstr ""
+msgstr "Vælg et projekt:"
msgctxt "attachproject_list_manual_button"
msgid "Add project by URL"
-msgstr ""
+msgstr "Tilføj projekt vha. URL"
msgctxt "attachproject_list_manual_dialog_title"
msgid "Enter project URL:"
-msgstr ""
+msgstr "Indtast projekt-URL:"
msgctxt "attachproject_list_manual_dialog_button"
msgid "Add project"
-msgstr ""
+msgstr "Tilføj projekt"
msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
-msgstr ""
+msgstr "Indtast venligst projekt-URL"
+
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Forespurgt af kontohåndtering"
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
-msgstr ""
+msgstr "Ingen Internet-forbindelse"
#. project login
msgctxt "attachproject_login_loading"
msgid "Contacting project server…"
-msgstr ""
+msgstr "Kontakter projekt-server…"
msgctxt "attachproject_login_image_description"
msgid "Project logo."
-msgstr ""
+msgstr "Projektlogo."
msgctxt "attachproject_login_header_general_area"
msgid "General area:"
-msgstr ""
+msgstr "Generelt område:"
msgctxt "attachproject_login_header_specific_area"
msgid "Specific area:"
-msgstr ""
+msgstr "Specifikt område:"
msgctxt "attachproject_login_header_description"
msgid "Description:"
-msgstr ""
+msgstr "Beskrivelse:"
msgctxt "attachproject_login_header_home"
msgid "Home:"
-msgstr ""
+msgstr "Hjem:"
msgctxt "attachproject_login_header_url"
msgid "Website:"
-msgstr ""
+msgstr "Webside:"
msgctxt "attachproject_login_header_platform"
msgid "Android:"
-msgstr ""
+msgstr "Android:"
msgctxt "attachproject_login_platform_supported"
msgid "This project supports Android devices"
-msgstr ""
+msgstr "Dette projekt understøtter Android-enheder"
msgctxt "attachproject_login_platform_not_supported"
msgid "This project does not support Android devices"
-msgstr ""
+msgstr "Dette projekt understøtter ikke Android-enheder"
msgctxt "attachproject_login_category_terms_of_use"
msgid "Terms of use for"
-msgstr ""
+msgstr "Brugervilkår for"
msgctxt "attachproject_login_accept_terms_of_use"
msgid ""
"By creating an account with this project, you accept the terms of use as "
"shown above."
msgstr ""
+"Ved at oprette en konto hos dette projekt, accepterer du brugervilkårene,"
+" som vises herover."
msgctxt "attachproject_login_category_login"
msgid "Sign in with existing account"
-msgstr ""
+msgstr "Log ind med eksisterende konto"
msgctxt "attachproject_login_header_id_email"
msgid "eMail:"
-msgstr ""
+msgstr "Email:"
msgctxt "attachproject_login_header_id_name"
msgid "Name:"
-msgstr ""
+msgstr "Navn:"
msgctxt "attachproject_login_header_pwd"
msgid "Password:"
-msgstr ""
+msgstr "Kodeord:"
msgctxt "attachproject_login_category_creation"
msgid "New to"
-msgstr ""
+msgstr "Kender du ikke"
msgctxt "attachproject_login_header_creation_enabled"
msgid "Register an account to participate:"
-msgstr ""
+msgstr "Opret en konto for at deltage:"
msgctxt "attachproject_login_header_creation_client_disabled"
msgid "Visit project website to create an account:"
-msgstr ""
+msgstr "Besøg projektets webside for at oprette en konto:"
msgctxt "attachproject_login_header_creation_disabled"
msgid "Project does currently now allow creation of new accounts!"
-msgstr ""
+msgstr "Projektet tillader for tiden ikke oprettelse af nye konti!"
msgctxt "attachproject_login_button_registration"
msgid "Register"
-msgstr ""
+msgstr "Registrér"
msgctxt "attachproject_login_button_login"
msgid "Sign in"
-msgstr ""
+msgstr "Log ind"
msgctxt "attachproject_login_button_forgotpw"
msgid "Forgot Password"
-msgstr ""
+msgstr "Glemt kodeord"
msgctxt "attachproject_login_error_toast"
msgid "Contacting project failed!"
-msgstr ""
+msgstr "Kontakt til projekt fejlede!"
msgctxt "attachproject_login_attached"
msgid "Attached"
-msgstr ""
+msgstr "Forbundet"
#. project registration
msgctxt "attachproject_registration_header"
msgid "Account registration for"
-msgstr ""
+msgstr "Kontoregistrering for"
msgctxt "attachproject_registration_header_url"
msgid "Project:"
-msgstr ""
+msgstr "Projekt:"
msgctxt "attachproject_registration_header_email"
msgid "eMail:"
-msgstr ""
+msgstr "Email:"
msgctxt "attachproject_registration_header_username"
msgid "Name:"
-msgstr ""
+msgstr "Navn:"
msgctxt "attachproject_registration_header_teamname"
msgid "Team:"
-msgstr ""
+msgstr "Hold:"
msgctxt "attachproject_registration_header_pwd"
msgid "Password:"
-msgstr ""
+msgstr "Kodeord:"
msgctxt "attachproject_registration_header_pwd_confirm"
msgid "… Retype:"
-msgstr ""
+msgstr "… Tast igen:"
msgctxt "attachproject_registration_button"
msgid "Create"
+msgstr "Opret"
+
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Forespurgt af kontohåndtering"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Kodeord:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Tast igen:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
msgstr ""
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
-msgstr ""
+msgstr "Bruger ikke fundet"
msgctxt "attachproject_error_short_pwd"
msgid "Password too short"
-msgstr ""
+msgstr "Kodeord for kort"
msgctxt "attachproject_error_no_internet"
msgid "Connection failure"
-msgstr ""
+msgstr "Forbindelsesfejl"
msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
-msgstr ""
+msgstr "Kodeord passer ikke sammen"
+
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Indtast venligst brugernavn"
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
-msgstr ""
+msgstr "Indtast venligst emailadresse"
msgctxt "attachproject_error_no_pwd"
msgid "Please enter a password"
-msgstr ""
+msgstr "Indtast venligst et kodeord"
msgctxt "attachproject_error_no_name"
msgid "Please enter user name"
-msgstr ""
+msgstr "Indtast venligst brugernavn"
msgctxt "attachproject_error_unknown"
msgid "failed"
-msgstr ""
+msgstr "fejlede"
msgctxt "attachproject_error_bad_username"
msgid "User name refused"
-msgstr ""
+msgstr "Brugernavn afvist"
msgctxt "attachproject_error_email_in_use"
msgid "eMail is already in use"
-msgstr ""
+msgstr "Email er allerede i brug"
msgctxt "attachproject_error_project_down"
msgid "Project is offline"
-msgstr ""
+msgstr "Projekt er offline"
msgctxt "attachproject_error_email_bad_syntax"
msgid "eMail refused"
-msgstr ""
+msgstr "Email afvist"
msgctxt "attachproject_error_bad_pwd"
msgid "Password refused"
-msgstr ""
+msgstr "Kodeord afvist"
msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
+msgstr "Oprettelse af konti er slået fra for dette projekt"
+
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
msgstr ""
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
-msgstr ""
+msgstr "Tilbage"
msgctxt "attachproject_working_finish_button"
msgid "Finish"
-msgstr ""
+msgstr "Færdig"
msgctxt "attachproject_working_check_desc"
msgid "Successful"
-msgstr ""
+msgstr "Succesfuldt"
msgctxt "attachproject_working_failed_desc"
msgid "Failed"
-msgstr ""
+msgstr "Fejlede"
msgctxt "attachproject_working_ongoing"
msgid "…"
-msgstr ""
+msgstr "…"
msgctxt "attachproject_working_finished"
msgid "."
-msgstr ""
+msgstr "."
msgctxt "attachproject_working_description"
msgid ":"
-msgstr ""
+msgstr ":"
msgctxt "attachproject_working_connect"
msgid "Connect"
-msgstr ""
+msgstr "Forbind"
msgctxt "attachproject_working_verify"
msgid "Verify account"
-msgstr ""
+msgstr "Verificér konto"
msgctxt "attachproject_working_register"
msgid "Register account"
-msgstr ""
+msgstr "Registrér konto"
msgctxt "attachproject_working_login"
msgid "Log in"
+msgstr "Log ind"
+
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Forespurgt af kontohåndtering"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
msgstr ""
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
-msgstr ""
+msgstr "Rør her for at vælge et projekt."
msgctxt "main_error"
msgid "Whooops"
-msgstr ""
+msgstr "Ups"
msgctxt "main_error_long"
msgid ""
"…this should not happen!\n"
"Click on the icon to try again."
msgstr ""
+"… dette burde ikke ske!\n"
+"Klik på ikonet for at prøve igen."
msgctxt "main_title_icon_desc"
msgid "BOINC icon"
-msgstr ""
+msgstr "BOINC-ikon"
#. tab names
msgctxt "tab_status"
msgid "Status"
-msgstr ""
+msgstr "Status"
msgctxt "tab_projects"
msgid "Projects"
-msgstr ""
+msgstr "Projekter"
msgctxt "tab_tasks"
msgid "Tasks"
-msgstr ""
+msgstr "Opgaver"
msgctxt "tab_transfers"
msgid "Transfers"
-msgstr ""
+msgstr "Overførsler"
msgctxt "tab_preferences"
msgid "Preferences"
+msgstr "Indstillinger"
+
+msgctxt "tab_notices"
+msgid "Notices"
msgstr ""
msgctxt "tab_desc"
msgid "Navigation"
-msgstr ""
+msgstr "Navigering"
#. status strings
msgctxt "status_running"
msgid "Computing"
-msgstr ""
+msgstr "Beregner"
msgctxt "status_running_long"
msgid "Thank you for participating."
-msgstr ""
+msgstr "Tak for din deltagelse."
msgctxt "status_paused"
msgid "Suspended"
-msgstr ""
+msgstr "Suspenderet"
msgctxt "status_idle"
msgid "Nothing to do"
-msgstr ""
+msgstr "Intet at beregne"
msgctxt "status_idle_long"
msgid "Waiting for tasks…"
-msgstr ""
+msgstr "Venter på opgaver…"
msgctxt "status_computing_disabled"
msgid "Suspended"
-msgstr ""
+msgstr "Suspenderet"
msgctxt "status_computing_disabled_long"
msgid "Press play to resume network and computation."
-msgstr ""
+msgstr "Tryk play for at genoptage netværk og beregning."
msgctxt "status_launching"
msgid "Starting…"
-msgstr ""
+msgstr "Starter…"
msgctxt "status_noproject"
msgid "Choose a project to participate in."
-msgstr ""
+msgstr "Vælg et projekt at deltage i."
msgctxt "status_closing"
msgid "Closing…"
-msgstr ""
+msgstr "Lukker…"
msgctxt "status_benchmarking"
msgid "Benchmarking…"
-msgstr ""
+msgstr "Måler ydelsesevne…"
msgctxt "status_image_description"
msgid "project image"
-msgstr ""
+msgstr "projektbillede"
#. preferences tab strings
msgctxt "prefs_loading"
msgid "Reading preferences…"
-msgstr ""
+msgstr "Indlæser indstillinger…"
msgctxt "prefs_submit_button"
msgid "Save"
-msgstr ""
+msgstr "Gem"
msgctxt "prefs_dialog_title"
msgid "Enter new value:"
-msgstr ""
+msgstr "Indtast ny værdi:"
msgctxt "prefs_dialog_title_selection"
msgid "Select:"
-msgstr ""
+msgstr "Vælg:"
msgctxt "prefs_category_general"
msgid "General"
-msgstr ""
+msgstr "Generelt"
msgctxt "prefs_category_network"
msgid "Network"
-msgstr ""
+msgstr "Netværk"
msgctxt "prefs_category_power"
msgid "Power"
-msgstr ""
+msgstr "Strøm"
msgctxt "prefs_category_cpu"
msgid "CPU"
-msgstr ""
+msgstr "CPU"
msgctxt "prefs_category_storage"
msgid "Storage"
-msgstr ""
+msgstr "Lagring"
msgctxt "prefs_category_memory"
msgid "Memory"
-msgstr ""
+msgstr "Hukommelse"
msgctxt "prefs_category_debug"
msgid "Debug"
-msgstr ""
+msgstr "Fejlsøgning"
msgctxt "prefs_show_advanced_header"
msgid "Show advanced preferences and controls…"
-msgstr ""
+msgstr "Vis avancerede indstillinger…"
msgctxt "prefs_run_on_battery_header"
msgid "Compute on Battery"
-msgstr ""
+msgstr "Beregn i batteritilstand"
msgctxt "battery_charge_min_pct_header"
msgid "Min. battery level"
-msgstr ""
+msgstr "Min. batteriniveau"
msgctxt "battery_charge_min_pct_description"
msgid "BOINC suspends computation below defined battery charge level."
-msgstr ""
+msgstr "BOINC stopper beregninger under defineret batteriopladningsniveau."
msgctxt "battery_temperature_max_header"
msgid "Max. battery temperature"
-msgstr ""
+msgstr "Max. batteritemperatur"
msgctxt "battery_temperature_max_description"
msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
+"BOINC stopper beregninger over defineret batteritemperatur. Det anbefales"
+" ikke at ændre denne værdi."
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
-msgstr ""
+msgstr "Maks. brugt lagringsplads"
msgctxt "prefs_disk_max_pct_description"
msgid "How many percent of your device's storage space is BOINC allowed to use?"
-msgstr ""
+msgstr "Hvor mange procent af din enheds lagringsplads må BOINC bruge?"
msgctxt "prefs_disk_min_free_gb_header"
msgid "Min. spare storage"
-msgstr ""
+msgstr "Min. lagringsplads"
msgctxt "prefs_disk_min_free_gb_description"
msgid "How much of your device's storage space shall stay free?"
-msgstr ""
+msgstr "Hvor meget af din enheds lagringsplads skal forblive ubrugt?"
msgctxt "prefs_network_daily_xfer_limit_mb_header"
msgid "Daily transfer limit"
-msgstr ""
+msgstr "Daglig begrænsning på overførsler"
msgctxt "prefs_network_daily_xfer_limit_mb_description"
msgid "Limits the daily data traffic caused by BOINC."
-msgstr ""
+msgstr "Begrænser den daglige datatraffik forårsaget af BOINC."
msgctxt "prefs_network_wifi_only_header"
msgid "Transfer tasks on WiFi only"
-msgstr ""
+msgstr "Overfør kun opgaver over WiFi"
msgctxt "prefs_autostart_header"
msgid "Autostart"
-msgstr ""
+msgstr "Autostart"
msgctxt "prefs_show_notification_header"
msgid "Show notification when suspended"
-msgstr ""
+msgstr "Vis notifikation under suspendering"
msgctxt "prefs_cpu_number_cpus_header"
msgid "Used CPU cores"
-msgstr ""
+msgstr "Brugte CPU-kerner"
msgctxt "prefs_cpu_number_cpus_description"
msgid "Limits the number of CPU cores BOINC uses for computation."
-msgstr ""
+msgstr "Begrænser antallet af CPU-kerner, som BOINC bruger til beregninger."
msgctxt "prefs_cpu_other_load_suspension_header"
msgid "Pause at CPU usage above"
-msgstr ""
+msgstr "Pause ved CPU-belastning over"
msgctxt "prefs_cpu_other_load_suspension_description"
msgid "Determines when BOINC pauses computation due to other app's CPU usage."
msgstr ""
+"Bestemmer hvornår BOINC sætter beregninger på pause på grund af andre "
+"app'ers CPU-brug."
msgctxt "prefs_cpu_time_max_header"
msgid "CPU limit"
-msgstr ""
+msgstr "CPU-begrænsning"
msgctxt "prefs_cpu_time_max_description"
msgid "Limits the CPU time BOINC uses for computation."
-msgstr ""
+msgstr "Begrænser CPU-tiden, som BOINC bruger til beregninger."
msgctxt "prefs_memory_max_idle_header"
msgid "RAM limit"
-msgstr ""
+msgstr "RAM-begrænsning"
msgctxt "prefs_memory_max_idle_description"
msgid "Limits the amount of RAM tasks are allowed to occupy."
-msgstr ""
+msgstr "Begrænser mængden af RAM, som opgaver tillades at optage."
msgctxt "prefs_client_log_flags_header"
msgid "BOINC Client log flags"
-msgstr ""
+msgstr "log-flag for BOINC-klient"
msgctxt "prefs_gui_log_level_header"
msgid "GUI log level"
-msgstr ""
+msgstr "GUI-logniveau"
msgctxt "prefs_gui_log_level_description"
msgid "Specifies verbosity of GUI log messages."
-msgstr ""
+msgstr "Specificerer uddybning af GUI-logbeskeder."
msgctxt "prefs_unit_mb"
msgid "MB"
-msgstr ""
+msgstr "MB"
msgctxt "prefs_unit_gb"
msgid "GB"
-msgstr ""
+msgstr "GB"
#, c-format
msgctxt "prefs_unit_pct"
msgid "%"
-msgstr ""
+msgstr "%"
msgctxt "prefs_unit_celcius"
msgid "°C"
-msgstr ""
+msgstr "°C"
#. projects tab strings
msgctxt "projects_loading"
msgid "Reading projects…"
-msgstr ""
+msgstr "Indlæser projekter…"
msgctxt "projects_add"
msgid "Add project"
-msgstr ""
+msgstr "Tilføj projekt"
msgctxt "projects_icon"
msgid "Project icon"
-msgstr ""
+msgstr "Projekt-ikon"
msgctxt "projects_credits_header"
msgid "Credit:"
-msgstr ""
+msgstr "Bidragsydere:"
msgctxt "projects_credits_host_header"
msgid "(on this device)"
-msgstr ""
+msgstr "(på denne enhed)"
msgctxt "projects_credits_user_header"
msgid "(total)"
-msgstr ""
+msgstr "(total)"
#. project status strings
msgctxt "projects_status_suspendedviagui"
msgid "Suspended by user"
-msgstr ""
+msgstr "Suspenderet af bruger"
msgctxt "projects_status_dontrequestmorework"
msgid "Won't get new tasks"
-msgstr ""
+msgstr "Vil ikke modtage nye opgaver"
msgctxt "projects_status_ended"
msgid "Project ended - OK to remove"
-msgstr ""
+msgstr "Projekt afsluttet - O.k. for at fjerne"
msgctxt "projects_status_detachwhendone"
msgid "Will remove when tasks done"
-msgstr ""
+msgstr "Vil blive fjernet, når opgaver er fuldført"
msgctxt "projects_status_schedrpcpending"
msgid "Scheduler request pending"
-msgstr ""
+msgstr "Planlægningsforespørgsel afventer"
msgctxt "projects_status_schedrpcinprogress"
msgid "Scheduler request in progress"
-msgstr ""
+msgstr "Planlægningsforespørgsel under udførsel"
msgctxt "projects_status_trickleuppending"
msgid "Trickle up message pending"
-msgstr ""
+msgstr "Trickle-up-besked afventer"
msgctxt "projects_status_backoff"
msgid "Communication scheduled in:"
-msgstr ""
+msgstr "Kommunikation planlagt om:"
#. project controls
msgctxt "projects_control_dialog_title"
msgid "Project commands:"
-msgstr ""
+msgstr "Projektkommandoer:"
msgctxt "projects_control_update"
msgid "Update"
-msgstr ""
+msgstr "Opdatér"
msgctxt "projects_control_remove"
msgid "Remove"
-msgstr ""
+msgstr "Fjern"
msgctxt "projects_control_suspend"
msgid "Suspend"
-msgstr ""
+msgstr "Suspendér"
msgctxt "projects_control_resume"
msgid "Resume"
-msgstr ""
+msgstr "Fortsæt"
msgctxt "projects_control_nonewtasks"
msgid "No new tasks"
-msgstr ""
+msgstr "Ingen nye opgaver"
msgctxt "projects_control_allownewtasks"
msgid "Allow new tasks"
-msgstr ""
+msgstr "Tillad nye opgaver"
msgctxt "projects_control_reset"
msgid "Reset"
+msgstr "Nulstil"
+
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
msgstr ""
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
-msgstr ""
+msgstr "Fjern projekt?"
msgctxt "projects_confirm_detach_message"
msgid "Are you sure you want to remove"
-msgstr ""
+msgstr "Er du sikker på, at du vil fjerne"
msgctxt "projects_confirm_detach_message2"
msgid "from BOINC?"
-msgstr ""
+msgstr "fra BOINC?"
msgctxt "projects_confirm_detach_confirm"
msgid "Remove"
-msgstr ""
+msgstr "Fjern"
msgctxt "projects_confirm_reset_title"
msgid "Reset project"
-msgstr ""
+msgstr "Nulstil projekt"
msgctxt "projects_confirm_reset_message"
msgid "Are you sure you want to reset"
-msgstr ""
+msgstr "Er du sikker på, at du vil nulstille"
msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
+msgstr "Nulstil"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Forespurgt af kontohåndtering"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Er du sikker på, at du vil nulstille"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
msgstr ""
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
-msgstr ""
+msgstr "Opgavenavn:"
msgctxt "tasks_header_elapsed_time"
msgid "Elapsed time:"
-msgstr ""
+msgstr "Forgangen tid:"
msgctxt "tasks_header_project_paused"
msgid "(suspended)"
-msgstr ""
+msgstr "(suspenderet)"
msgctxt "tasks_header_deadline"
msgid "Deadline:"
-msgstr ""
+msgstr "Deadline:"
msgctxt "tasks_result_new"
msgid "new"
-msgstr ""
+msgstr "ny"
msgctxt "tasks_result_files_downloading"
msgid "waiting for download"
-msgstr ""
+msgstr "venter på download"
msgctxt "tasks_result_files_downloaded"
msgid "download complete"
-msgstr ""
+msgstr "download komplet"
msgctxt "tasks_result_compute_error"
msgid "computation error"
-msgstr ""
+msgstr "beregningsfejl"
msgctxt "tasks_result_files_uploading"
msgid "uploading"
-msgstr ""
+msgstr "uploader"
msgctxt "tasks_result_files_uploaded"
msgid "upload complete"
-msgstr ""
+msgstr "upload komplet"
msgctxt "tasks_result_aborted"
msgid "aborted"
-msgstr ""
+msgstr "afbrudt"
msgctxt "tasks_result_upload_failed"
msgid "upload failed"
-msgstr ""
+msgstr "upload fejlede"
msgctxt "tasks_active_uninitialized"
msgid "ready"
-msgstr ""
+msgstr "klar"
msgctxt "tasks_active_executing"
msgid "running"
-msgstr ""
+msgstr "kører"
msgctxt "tasks_active_suspended"
msgid "suspended"
-msgstr ""
+msgstr "suspenderet"
msgctxt "tasks_active_abort_pending"
msgid "suspending"
-msgstr ""
+msgstr "suspenderer"
msgctxt "tasks_active_quit_pending"
msgid "suspending"
-msgstr ""
+msgstr "suspenderer"
msgctxt "tasks_custom_suspended_via_gui"
msgid "suspended"
-msgstr ""
+msgstr "suspenderet"
msgctxt "tasks_custom_project_suspended_via_gui"
msgid "project suspended"
-msgstr ""
+msgstr "projekt suspenderet"
msgctxt "tasks_custom_ready_to_report"
msgid "ready to report"
-msgstr ""
+msgstr "klar til at rapportere"
#. confirmation dialog
msgctxt "confirm_abort_task_title"
msgid "Abort task?"
-msgstr ""
+msgstr "Afbryd opgave?"
msgctxt "confirm_abort_task_message"
msgid "Abort task:"
-msgstr ""
+msgstr "Afbryd opgave:"
msgctxt "confirm_abort_task_confirm"
msgid "Abort"
-msgstr ""
+msgstr "Afbryd"
msgctxt "confirm_cancel"
msgid "Cancel"
-msgstr ""
+msgstr "Annullér"
msgctxt "confirm_image_desc"
msgid "Confirmation dialog"
-msgstr ""
+msgstr "Bekræftelsesdialog"
#. transfers tab strings
msgctxt "trans_loading"
msgid "Reading transfers…"
-msgstr ""
+msgstr "Indlæser overførsler…"
msgctxt "trans_upload"
msgid "Upload"
-msgstr ""
+msgstr "Upload"
msgctxt "trans_download"
msgid "Download"
-msgstr ""
+msgstr "Download"
msgctxt "trans_retryin"
msgid "retry in"
-msgstr ""
+msgstr "prøv igen om"
msgctxt "trans_failed"
msgid "failed"
-msgstr ""
+msgstr "fejlede"
msgctxt "trans_suspended"
msgid "suspended"
-msgstr ""
+msgstr "suspenderet"
msgctxt "trans_active"
msgid "active"
-msgstr ""
+msgstr "aktiv"
msgctxt "trans_pending"
msgid "pending"
-msgstr ""
+msgstr "afventer"
msgctxt "trans_projectbackoff"
msgid "project backoff"
-msgstr ""
+msgstr "projekt backoff"
msgctxt "trans_header_name"
msgid "File:"
-msgstr ""
+msgstr "Fil:"
msgctxt "confirm_abort_trans_title"
msgid "Abort transfer?"
-msgstr ""
+msgstr "Afbryd overførsel?"
msgctxt "confirm_abort_trans_message"
msgid "Abort File:"
-msgstr ""
+msgstr "Afbryd fil:"
msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
-msgstr ""
+msgstr "Afbryd"
+
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Indlæser projekter…"
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
-msgstr ""
+msgstr "Indlæser logbeskeder…"
msgctxt "eventlog_client_header"
msgid "Client Messages"
-msgstr ""
+msgstr "Klientbeskeder"
msgctxt "eventlog_gui_header"
msgid "GUI Messages"
-msgstr ""
+msgstr "GUI-beskeder"
msgctxt "eventlog_copy_toast"
msgid "Log copied to clipboard."
-msgstr ""
+msgstr "Log kopieret til udklipsholder."
msgctxt "eventlog_email_subject"
msgid "Event Log for BOINC on Android:"
-msgstr ""
+msgstr "Hændelseslog for BOINC på Android:"
#. suspend reasons
msgctxt "suspend_unknown"
msgid "Computation suspended."
-msgstr ""
+msgstr "Beregning suspenderet."
msgctxt "suspend_batteries"
msgid "Connect your device to a charger to continue computing."
-msgstr ""
+msgstr "Forbind din enhed til en oplader for at fortsætte beregning."
msgctxt "suspend_useractive"
msgid "User is active."
-msgstr ""
+msgstr "Bruger er aktiv."
msgctxt "suspend_tod"
msgid "Out of computation time-frame."
-msgstr ""
+msgstr "Tidsvindue for beregning brugt up."
msgctxt "suspend_bm"
msgid "BOINC is benchmarking your device…"
-msgstr ""
+msgstr "BOINC måler din enheds ydelsesevne…"
msgctxt "suspend_disksize"
msgid "Out of disk space."
-msgstr ""
+msgstr "Diskplads brugt op."
msgctxt "suspend_cputhrottle"
msgid "Scheduled CPU throttle."
-msgstr ""
+msgstr "CPU-neddrosling planlagt."
msgctxt "suspend_noinput"
msgid "No recent user activity."
-msgstr ""
+msgstr "Ingen nylig brugeraktivitet."
msgctxt "suspend_delay"
msgid "Initialization delay."
-msgstr ""
+msgstr "Initialiseringsforsinkelse."
msgctxt "suspend_exclusiveapp"
msgid "An exclusive app is running."
-msgstr ""
+msgstr "En eksklusiv app kører."
msgctxt "suspend_cpu"
msgid "Your device is busy with other apps."
-msgstr ""
+msgstr "Din enhed er optaget af andre apps."
msgctxt "suspend_network_quota"
msgid "BOINC reached network transfer limit."
-msgstr ""
+msgstr "BOINC har nået begrænsningen for netværksoverførsel-"
msgctxt "suspend_os"
msgid "Stopped by Android."
-msgstr ""
+msgstr "Stoppet af Android."
msgctxt "suspend_wifi"
msgid "Not connected to WiFi."
-msgstr ""
+msgstr "Ikke forbundet til WiFi."
msgctxt "suspend_battery_charging"
msgid "Battery needs to charge before resuming computation."
-msgstr ""
+msgstr "Batteri skal være under opladning, før beregning genoptages."
msgctxt "suspend_battery_charging_long"
msgid "Computing will resume when battery charge reaches"
-msgstr ""
+msgstr "Beregning vil blive genoptaget, når batteriniveau når"
msgctxt "suspend_battery_charging_current"
msgid "currently"
-msgstr ""
+msgstr "nuværende"
msgctxt "suspend_battery_overheating"
msgid "Waiting for battery to cool down"
-msgstr ""
+msgstr "Venter på at batteri køler ned"
msgctxt "suspend_user_req"
msgid "Resuming computation…"
-msgstr ""
+msgstr "Genoptager beregning…"
msgctxt "suspend_network_user_req"
msgid "manually."
-msgstr ""
+msgstr "manuelt."
#. rpc reasons
msgctxt "rpcreason_userreq"
msgid "Requested by user"
-msgstr ""
+msgstr "Forespurgt af bruger"
msgctxt "rpcreason_needwork"
msgid "To fetch work"
-msgstr ""
+msgstr "For at hente opgaver"
msgctxt "rpcreason_resultsdue"
msgid "To report completed tasks"
-msgstr ""
+msgstr "For at rapportere komplette opgaver"
msgctxt "rpcreason_trickleup"
msgid "To send trickle-up message"
-msgstr ""
+msgstr "For at sende trickle-up-besked"
msgctxt "rpcreason_acctmgrreq"
msgid "Requested by account manager"
-msgstr ""
+msgstr "Forespurgt af kontohåndtering"
msgctxt "rpcreason_init"
msgid "Project initialization"
-msgstr ""
+msgstr "Projektinitialisering"
msgctxt "rpcreason_projectreq"
msgid "Requested by project"
-msgstr ""
+msgstr "Forespurgt af projekt"
msgctxt "rpcreason_unknown"
msgid "Unknown reason"
-msgstr ""
+msgstr "Ukendt begrundelse"
#. menu
msgctxt "menu_refresh"
msgid "Refresh"
-msgstr ""
+msgstr "Opdatér"
msgctxt "menu_emailto"
msgid "Send as Email"
-msgstr ""
+msgstr "Send som email"
msgctxt "menu_copy"
msgid "Copy to Clipboard"
-msgstr ""
+msgstr "Kopiér til udklipsholder"
msgctxt "menu_eventlog"
msgid "Event Log"
-msgstr ""
+msgstr "Hændelseslog"
msgctxt "menu_exit"
msgid "Exit BOINC"
-msgstr ""
+msgstr "Afslut BOINC"
msgctxt "menu_run_mode_disable"
msgid "Suspend"
-msgstr ""
+msgstr "Suspendér"
msgctxt "menu_run_mode_enable"
msgid "Resume"
-msgstr ""
+msgstr "Genoptag"
msgctxt "menu_about"
msgid "About"
-msgstr ""
+msgstr "Om"
msgctxt "menu_help"
msgid "Help"
-msgstr ""
+msgstr "Hjælp"
#. about dialog
msgctxt "about_button"
msgid "Return"
-msgstr ""
+msgstr "Tilbage"
msgctxt "about_title"
msgid "About"
-msgstr ""
+msgstr "Om"
msgctxt "about_name"
msgid "BOINC"
-msgstr ""
+msgstr "BOINC"
msgctxt "about_version"
msgid "Version"
-msgstr ""
+msgstr "Version"
msgctxt "about_name_long"
msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr ""
+msgstr "Berkeley Open Infrastructure for Network Computing"
msgctxt "about_copyright"
msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+"© 2003–2013 University of California, Berkeley.\n"
+"Alle rettigheder forbeholdes."
+
diff --git a/locale/da/BOINC-Client.mo b/locale/da/BOINC-Client.mo
index f91708e..5bbb589 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 b02abf6..94c2a5c 100644
--- a/locale/da/BOINC-Client.po
+++ b/locale/da/BOINC-Client.po
@@ -7,36 +7,40 @@ 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"
+"PO-Revision-Date: 2013-10-08 19:25+0000\n"
+"Last-Translator: pryds <thomas at pryds.eu>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"Language: da\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"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.5.0\n"
+"X-POOTLE-MTIME: 1381260329.0\n"
#: acct_mgr.cpp:448 acct_mgr.cpp:457
msgid "Message from account manager"
-msgstr ""
+msgstr "Besked fra kontohåndtering"
#: client_msgs.cpp:85
msgid "Message from server"
-msgstr ""
+msgstr "Besked fra server"
#: client_state.cpp:246
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:501
msgid "Couldn't write state file; check directory permissions"
-msgstr ""
+msgstr "Kunne ikke skrive tilstands-fil; tjek mappe-rettigheder"
#: cs_cmdline.cpp:299
msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
-msgstr ""
+msgstr "Miljøvariablen HTTP_PROXY skal specificere en HTTP-proxy"
#: cs_scheduler.cpp:575
#, c-format
@@ -44,116 +48,134 @@ 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"
#: cs_statefile.cpp:829 ../sched/sched_types.cpp:259
msgid "Syntax error in app_info.xml"
-msgstr ""
+msgstr "Syntaksfejl i app_info.xml"
#: cs_statefile.cpp:869
msgid "File referenced in app_info.xml does not exist: "
-msgstr ""
+msgstr "Filen, der refereres til i app_info.xml, eksisterer ikke: "
#: current_version.cpp:90
msgid "A new version of BOINC is available."
-msgstr ""
+msgstr "En ny version af BOINC er tilgængelig."
#: current_version.cpp:94
msgid "Download"
-msgstr ""
+msgstr "Download"
#: log_flags.cpp:259 log_flags.cpp:436
msgid "Unexpected text in cc_config.xml"
-msgstr ""
+msgstr "Uventet tekst i cc_config.xml"
#: log_flags.cpp:410 log_flags.cpp:462
msgid "Unrecognized tag in cc_config.xml"
-msgstr ""
+msgstr "Ukendt mærke i cc_config.xml"
#: log_flags.cpp:427
msgid "Missing start tag in cc_config.xml"
-msgstr ""
+msgstr "Manglende startmærke i cc_config.xml"
#: log_flags.cpp:452
msgid "Error in cc_config.xml options"
-msgstr ""
+msgstr "Fejl i valgmuligheder i cc_config.xml"
#: log_flags.cpp:470
msgid "Missing end tag in cc_config.xml"
-msgstr ""
+msgstr "Manglende slutmærke i cc_config.xml"
#: ../sched/handle_request.cpp:307
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
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
msgid "This project doesn't support operating system"
-msgstr ""
+msgstr "Dette projekt understøtter ikke operativsystemet"
#: ../sched/handle_request.cpp:969
msgid "This project doesn't support CPU type"
-msgstr ""
+msgstr "Dette projekt understøtter ikke CPU-typen"
#: ../sched/handle_request.cpp:993
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
msgid "This project doesn't support computers of type"
-msgstr ""
+msgstr "Dette projekt understøtter ikke computere af typen"
#: ../sched/sched_send.cpp:1092
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
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
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
#, c-format
msgid "An %s GPU is required to run tasks for this project"
-msgstr ""
+msgstr "En %s-SPU er krævet for at løse opgaver for dette projekt"
#: ../sched/sched_send.cpp:1262
msgid "No tasks are available for the applications you have selected."
-msgstr ""
+msgstr "Ingen opgaver er tilgængelige for de applikationer, du har valgt."
#: ../sched/sched_send.cpp:1288
msgid "Your computer type is not supported by this project"
-msgstr ""
+msgstr "Din computertype er ikke understøttet af dette projekt"
#: ../sched/sched_send.cpp:1294
msgid "Newer BOINC version required; please install current version"
-msgstr ""
+msgstr "Nyere BOINC-version påkrævet; installér venligst den aktuelle version"
#: ../sched/sched_send.cpp:1305
#, 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 ""
+msgstr "Ukendt app-navn i app_info.xml"
#: ../sched/sched_version.cpp:214
msgid "Your app_info.xml file doesn't have a usable version of"
-msgstr ""
+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 71e91fb..c0513a8 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 1e76b53..27ec9a9 100644
--- a/locale/da/BOINC-Manager.po
+++ b/locale/da/BOINC-Manager.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: BOINC Manager 6.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-06-18 11:32-0500\n"
-"PO-Revision-Date: 2013-06-05 19:44+0200\n"
+"PO-Revision-Date: 2013-10-07 19:59+0000\n"
"Last-Translator: Anonymous Pootle User\n"
"Language-Team: BOINC Development Team <boinc_loc at ssl.berkeley.edu>\n"
"Language: da\n"
@@ -15,13 +15,14 @@ msgstr ""
"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-Generator: Pootle 2.5.0\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-POOTLE-MTIME: 1381175966.0\n"
"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
#: clientgui/AccountInfoPage.cpp:387
@@ -70,7 +71,7 @@ msgstr ""
#: clientgui/AccountInfoPage.cpp:416
msgid "Find login information"
-msgstr ""
+msgstr "Find loginoplysninger"
#: clientgui/AccountInfoPage.cpp:436
#: clientgui/AccountInfoPage.cpp:668
@@ -106,7 +107,7 @@ msgstr "Minimal længde %d"
#: clientgui/AccountInfoPage.cpp:522
msgid "Forgot your password?"
-msgstr "Har du glemt dit password?"
+msgstr "Har du glemt din adgangskode?"
#: clientgui/AccountInfoPage.cpp:529
msgid ""
@@ -114,15 +115,17 @@ msgid ""
"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 kontomanager,\n"
+"bedes du gøre det, før du fortsætter. Klik på nedenstående link\n"
+"for at registrere eller hente en glemt adgangskode."
#: clientgui/AccountInfoPage.cpp:532
msgid "Account manager website"
-msgstr ""
+msgstr "Hjemmeside for kontomanager"
#: clientgui/AccountInfoPage.cpp:574
-#, fuzzy
msgid "Add project"
-msgstr "Alle projekter"
+msgstr "Tilføj projekt"
#: clientgui/AccountInfoPage.cpp:576
msgid "Update account manager"
@@ -378,12 +381,11 @@ msgstr ""
#: clientgui/AdvancedFrame.cpp:496
#, fuzzy
msgid "Allow GPU work regardless of preferences"
-msgstr "Tillad arbejde uanset indstillinger"
+msgstr "Tillad GPU-arbejde uanset indstillinger"
#: clientgui/AdvancedFrame.cpp:500
-#, fuzzy
msgid "Use GPU based on preferences"
-msgstr "Kør efter &indstillinger"
+msgstr "Brug GPU efter indstillinger"
#: clientgui/AdvancedFrame.cpp:501
#, fuzzy
diff --git a/locale/da/BOINC-Project-Generic.po b/locale/da/BOINC-Project-Generic.po
index c497c41..944ff5a 100644
--- a/locale/da/BOINC-Project-Generic.po
+++ b/locale/da/BOINC-Project-Generic.po
@@ -7,7 +7,7 @@ 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: 2012-11-13 16:40 PST\n"
-"PO-Revision-Date: 2012-03-05 18:02+0200\n"
+"PO-Revision-Date: 2013-10-07 19:58+0000\n"
"Last-Translator: Anonymous Pootle User\n"
"Language-Team: BOINC Development Team <boinc_loc at ssl.berkeley.edu>\n"
"Language: da\n"
@@ -15,11 +15,12 @@ msgstr ""
"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-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-BOINC-UTF8-Marker: 简体中文, 日本語\n"
+"X-POOTLE-MTIME: 1381175920.0\n"
#, fuzzy
msgid "LANG_NAME_NATIVE"
@@ -532,7 +533,7 @@ msgstr ""
#: ../inc/host.inc:57 ../inc/prefs.inc:626 ../inc/prefs.inc:1032
msgid "School"
-msgstr ""
+msgstr "Skole"
#: ../inc/host.inc:59 ../user/edit_forum_preferences_form.php:172
#: ../user/edit_forum_preferences_form.php:173
@@ -2063,8 +2064,9 @@ msgid "Used in community functions"
msgstr ""
#: ../inc/user.inc:217 ../user/weak_auth.php:25
+#, fuzzy
msgid "Account keys"
-msgstr ""
+msgstr "Kontonøgle"
#: ../inc/user.inc:222
msgid "Preferences"
diff --git a/locale/da/BOINC-Setup.mo b/locale/da/BOINC-Setup.mo
index c7203fb..86559e6 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 ee4bc31..1bd43f9 100644
--- a/locale/da/BOINC-Setup.po
+++ b/locale/da/BOINC-Setup.po
@@ -7,35 +7,37 @@ 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"
+"PO-Revision-Date: 2013-10-07 20:03+0000\n"
+"Last-Translator: pryds <thomas at pryds.eu>\n"
"Language-Team: LANGUAGE <LL at li.org>\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: Poedit 1.5.5\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-Basepath: /Volumes/Cheer/BOINC_GIT/boinc_trunk\n"
"X-Poedit-SearchPath-0: mac_installer\n"
+"X-POOTLE-MTIME: 1381176195.0\n"
#: mac_installer/Installer.cpp:132
#, c-format
msgid "Sorry, this version of %s requires system 10.4 or higher."
-msgstr ""
+msgstr "Beklager, denne version af %s kræver system 10.4 eller højere."
#: mac_installer/PostInstall.cpp:131 mac_installer/PostInstall.cpp:1211
msgid "Yes"
-msgstr ""
+msgstr "Ja"
#: mac_installer/PostInstall.cpp:132 mac_installer/PostInstall.cpp:1212
msgid "No"
-msgstr ""
+msgstr "Nej"
#: mac_installer/PostInstall.cpp:134
msgid "Should BOINC run even when no user is logged in?"
-msgstr ""
+msgstr "Skal BOINC køre, selvom ingen bruger er logget ind?"
#: mac_installer/PostInstall.cpp:1491
#, c-format
@@ -46,25 +48,32 @@ 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"
+"\n"
+"Vil du også tillade ikke-administrative brugere at køre og styre %s på denne "
+"Mac?"
#: 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 ""
+msgstr "Vil du sætte %s som pauseskærm for alle %s-brugere på denne Mac?"
#: mac_installer/uninstall.cpp:80
msgid "OK"
-msgstr ""
+msgstr "O.k."
#: mac_installer/uninstall.cpp:130
msgid "Permission error after relaunch"
-msgstr ""
+msgstr "Fejl ved rettigheder efter genstart"
#: mac_installer/uninstall.cpp:135
msgid ""
"Removal may take several minutes.\n"
"Please be patient."
msgstr ""
+"Fjernelse kan tage adskillige minutter.\n"
+"Vær venligst tålmodig."
#: mac_installer/uninstall.cpp:150
#, c-format
@@ -73,20 +82,23 @@ msgid ""
"\n"
"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"
+"\n"
+"Dette vil fjerne de programfilerne men vil ikke røre ved %s datafiler."
#: mac_installer/uninstall.cpp:157
#, c-format
msgid "Canceled: %s has not been touched."
-msgstr ""
+msgstr "Annulleret: %s er ikke ændret."
#: mac_installer/uninstall.cpp:168
#, c-format
msgid "An error occurred: error code %d"
-msgstr ""
+msgstr "En fejl opstod: fejlkode %d"
#: mac_installer/uninstall.cpp:224
msgid "name of user"
-msgstr ""
+msgstr "navn på bruger"
#: mac_installer/uninstall.cpp:261
#, c-format
@@ -99,6 +111,13 @@ msgid ""
"for each user, the file\n"
"\"%s\"."
msgstr ""
+"Fjernelse fuldført.\n"
+"\n"
+" Du kan evt. fjerne de følgende tilbageblivende elementer vha. Finderen: \n"
+"mappen \"%s\"\n"
+"\n"
+"for hver bruger, filen\n"
+"\"%s\"."
#: mac_installer/uninstall.cpp:796
#, c-format
@@ -107,11 +126,14 @@ msgid ""
"computer.\n"
"\n"
msgstr ""
+"Indtast dit administrator-kodeord for fuldstændigt at fjerne %s fra din "
+"computer.\n"
+"\n"
#: mac_installer/uninstall.cpp:1543
msgid "Cancel"
-msgstr ""
+msgstr "Annuller"
#: mac_installer/uninstall.cpp:1544
msgid "Continue..."
-msgstr ""
+msgstr "Fortsæt..."
diff --git a/locale/da/BOINC-Web.mo b/locale/da/BOINC-Web.mo
index b398447..58b2547 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
index ecf5246..04697a6 100644
--- a/locale/da/BOINC-Web.po
+++ b/locale/da/BOINC-Web.po
@@ -7,18 +7,20 @@ msgstr ""
"Project-Id-Version: BOINC Web 6.x\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: 2009-01-06 01:45-0500\n"
-"Last-Translator: Janus Kristensen <jbk at visualgroup.dk>\n"
+"PO-Revision-Date: 2013-10-07 20:11+0000\n"
+"Last-Translator: Anonymous Pootle User\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"
-"X-Generator: Translate Toolkit 1.2.1\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-BOINC-UTF8-Marker: 简体中文, 日本語\n"
+"X-POOTLE-MTIME: 1381176670.0\n"
"X-Poedit-KeywordsList: tra\n"
#: projects.inc:14
@@ -63,7 +65,7 @@ msgstr ""
#: projects.inc:37
msgid "Cognitive science and artifical intelligence"
-msgstr ""
+msgstr "Kognitiv videnskab og kunstig Intelligens"
#: projects.inc:50 projects.inc:342 projects.inc:386 projects.inc:435
#: projects.inc:442 projects.inc:489
@@ -72,7 +74,7 @@ msgstr ""
#: projects.inc:51
msgid "Artificial intelligence"
-msgstr ""
+msgstr "Kunstig Intelligens"
#: projects.inc:52
msgid ""
@@ -84,7 +86,7 @@ msgstr ""
#: projects.inc:58
msgid "Biology and Medicine"
-msgstr ""
+msgstr "Biologi og medicin"
#: projects.inc:71
msgid "University College Dublin"
@@ -142,7 +144,7 @@ msgstr ""
#: projects.inc:104
msgid "Molecular simulations of proteins"
-msgstr ""
+msgstr "Molekylære simuleringer af proteiner"
#: projects.inc:105
msgid ""
@@ -825,7 +827,7 @@ msgstr ""
#: index.php:161
msgid "Events"
-msgstr ""
+msgstr "arrangementer"
#: index.php:162
msgid "Papers and talks"
@@ -837,19 +839,19 @@ msgstr ""
#: index.php:164
msgid "Logos and graphics"
-msgstr ""
+msgstr "Logoer og grafik"
#: index.php:165
msgid "and"
-msgstr ""
+msgstr "og"
#: index.php:169
msgid "Help wanted"
-msgstr ""
+msgstr "Hjælp ønsket"
#: index.php:171
msgid "Programming"
-msgstr ""
+msgstr "Programmering"
#: index.php:172
msgid "Translation"
@@ -865,7 +867,7 @@ msgstr ""
#: index.php:177
msgid "Software development"
-msgstr ""
+msgstr "udvikling af software"
#: index.php:178
msgid "APIs for add-on software"
diff --git a/locale/de/BOINC-Android.po b/locale/de/BOINC-Android.po
index 95483bd..ae30cdb 100644
--- a/locale/de/BOINC-Android.po
+++ b/locale/de/BOINC-Android.po
@@ -1,23 +1,20 @@
-# Translations template for PROJECT.
+# German translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-09-05 03:13+0000\n"
"Last-Translator: Christian <djangofett at gmx.net>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: de\n"
+"Language-Team: de <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1378350803.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +48,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Bitte die Projekt-URL eingeben"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Angefordert vom Kontomanager"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Keine Internetverbindung"
@@ -124,7 +126,6 @@ msgctxt "attachproject_login_header_pwd"
msgid "Password:"
msgstr "Passwort:"
-# Kompletter Satz: "Neu bei {Projekt}?"
msgctxt "attachproject_login_category_creation"
msgid "New to"
msgstr "Neu bei"
@@ -196,6 +197,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Erstellen"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Angefordert vom Kontomanager"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Passwort:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Bestätigung:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -213,6 +242,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Passwörter stimmen nicht überein"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Bitte einen Benutzernamen eingeben"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Bitte geben Sie Ihre E-Mail-Adresse ein"
@@ -254,6 +288,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "Die Kontoerstellung ist bei diesem Projekt deaktiviert"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -301,6 +339,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Anmelden"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Angefordert vom Kontomanager"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -343,6 +390,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Einstellungen"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Navigation"
@@ -471,8 +522,8 @@ msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
-"BOINC hält die Berechnung an, sobald diese Temperatur überschritten wird. Es "
-"wird nicht empfohlen diesen Wert zu ändern."
+"BOINC hält die Berechnung an, sobald diese Temperatur überschritten wird."
+" Es wird nicht empfohlen diesen Wert zu ändern."
#, fuzzy
msgctxt "prefs_disk_max_pct_header"
@@ -671,6 +722,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Zurücksetzen"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -701,6 +764,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Zurücksetzen"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Angefordert vom Kontomanager"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Wollen Sie wirklich zurücksetzen"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -859,6 +936,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Abbrechen"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Lade Projekte…"
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -941,8 +1024,7 @@ msgstr "Nicht per WLAN verbunden."
msgctxt "suspend_battery_charging"
msgid "Battery needs to charge before resuming computation."
-msgstr ""
-"Der Akku muss geladen werden bevor die Berechnung fortgesetzt werden kann."
+msgstr "Der Akku muss geladen werden bevor die Berechnung fortgesetzt werden kann."
msgctxt "suspend_battery_charging_long"
msgid "Computing will resume when battery charge reaches"
@@ -1062,3 +1144,4 @@ msgid ""
msgstr ""
"© 2003–2013 Universität von Kalifornien, Berkeley.\n"
"Alle Rechte vorbehalten."
+
diff --git a/locale/el/BOINC-Android.po b/locale/el/BOINC-Android.po
index 7978ccd..db4a7eb 100644
--- a/locale/el/BOINC-Android.po
+++ b/locale/el/BOINC-Android.po
@@ -1,23 +1,20 @@
-# Translations template for PROJECT.
+# Greek translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: el\n"
+"Language-Team: el <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1378350803.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +48,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Bitte die Projekt-URL eingeben"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Angefordert vom Kontomanager"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Keine Internetverbindung"
@@ -124,7 +126,6 @@ msgctxt "attachproject_login_header_pwd"
msgid "Password:"
msgstr "Passwort:"
-# Kompletter Satz: "Neu bei {Projekt}?"
msgctxt "attachproject_login_category_creation"
msgid "New to"
msgstr "Neu bei"
@@ -196,6 +197,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Erstellen"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Angefordert vom Kontomanager"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Passwort:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Bestätigung:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -213,6 +242,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Passwörter stimmen nicht überein"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Bitte einen Benutzernamen eingeben"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Bitte geben Sie Ihre E-Mail-Adresse ein"
@@ -254,6 +288,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "Die Kontoerstellung ist bei diesem Projekt deaktiviert"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -301,6 +339,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Anmelden"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Angefordert vom Kontomanager"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -343,6 +390,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Einstellungen"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Navigation"
@@ -471,8 +522,8 @@ msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
-"BOINC hält die Berechnung an, sobald diese Temperatur überschritten wird. Es "
-"wird nicht empfohlen diesen Wert zu ändern."
+"BOINC hält die Berechnung an, sobald diese Temperatur überschritten wird."
+" Es wird nicht empfohlen diesen Wert zu ändern."
#, fuzzy
msgctxt "prefs_disk_max_pct_header"
@@ -671,6 +722,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Zurücksetzen"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -701,6 +764,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Zurücksetzen"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Angefordert vom Kontomanager"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Wollen Sie wirklich zurücksetzen"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -859,6 +936,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Abbrechen"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Lade Projekte…"
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -941,8 +1024,7 @@ msgstr "Nicht per WLAN verbunden."
msgctxt "suspend_battery_charging"
msgid "Battery needs to charge before resuming computation."
-msgstr ""
-"Der Akku muss geladen werden bevor die Berechnung fortgesetzt werden kann."
+msgstr "Der Akku muss geladen werden bevor die Berechnung fortgesetzt werden kann."
msgctxt "suspend_battery_charging_long"
msgid "Computing will resume when battery charge reaches"
@@ -1062,3 +1144,4 @@ msgid ""
msgstr ""
"© 2003–2013 Universität von Kalifornien, Berkeley.\n"
"Alle Rechte vorbehalten."
+
diff --git a/locale/es/BOINC-Android.po b/locale/es/BOINC-Android.po
index 374278e..bb751aa 100644
--- a/locale/es/BOINC-Android.po
+++ b/locale/es/BOINC-Android.po
@@ -1,20 +1,19 @@
-# Translations template for PROJECT.
+# Spanish translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: es\n"
+"Language-Team: es <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +48,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +192,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +234,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +278,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +327,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +375,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +691,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +732,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +899,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1102,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/es/BOINC-Client.mo b/locale/es/BOINC-Client.mo
index 9183040..5283d45 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 c57938a..e08bb1a 100644
--- a/locale/es/BOINC-Client.po
+++ b/locale/es/BOINC-Client.po
@@ -7,15 +7,16 @@ 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: 2013-08-10 18:33+0200\n"
-"Last-Translator: David M <davidcomp2 at telefonica dot net>\n"
+"PO-Revision-Date: 2013-09-22 20:57+0000\n"
+"Last-Translator: Anonymous Pootle User\n"
"Language-Team: LANGUAGE <LL at li.org>\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.1.6\n"
+"X-Generator: Pootle 2.5.0\n"
+"X-POOTLE-MTIME: 1379883430.0\n"
#: acct_mgr.cpp:448 acct_mgr.cpp:457
msgid "Message from account manager"
@@ -62,7 +63,7 @@ msgstr "Un archivo referenciado en app_info.xml no existe: "
#: current_version.cpp:90
msgid "A new version of BOINC is available."
-msgstr "Hay disponible una nueva versión de BOINC."
+msgstr "Una nueva versión de BOINC está disponible."
#: current_version.cpp:94
msgid "Download"
@@ -86,7 +87,7 @@ msgstr "Error en las opciones en cc_config.xml"
#: log_flags.cpp:470
msgid "Missing end tag in cc_config.xml"
-msgstr "Etiqueta de fin perdida en cc_config.xml"
+msgstr "Etiqueta de final perdida en cc_config.xml"
#: ../sched/handle_request.cpp:307
msgid "Invalid or missing account key. To fix, remove and add this project."
@@ -110,35 +111,35 @@ msgstr ""
#: ../sched/handle_request.cpp:943
msgid "This project doesn't support operating system"
-msgstr "Este proyecto no soporta el sistema operativo"
+msgstr "Este proyecto no soporta este sistema operativo"
#: ../sched/handle_request.cpp:969
msgid "This project doesn't support CPU type"
-msgstr "Este proyecto no soporta el tipo de CPU"
+msgstr "Este proyecto no soporta este tipo de CPU"
#: ../sched/handle_request.cpp:993
msgid ""
"Your BOINC client software is too old. Please install the current version."
msgstr ""
-"Su versión de BOINC es demasiado antigua. Por favor instale la versión "
+"Su versión de BOINC es demasiado antigua. Por favor instale la versión "
"actual."
#: ../sched/handle_request.cpp:1259
msgid "This project doesn't support computers of type"
-msgstr "Este proyecto no soporta ordenadores de este tipo"
+msgstr "Este proyecto no soporta computadores de este tipo"
#: ../sched/sched_send.cpp:1092
msgid "Upgrade to the latest driver to process tasks using your computer's GPU"
msgstr ""
-"Actualiza al último driver para procesar tareas usando la GPU de tu "
-"ordenador "
+"Actualice a la última versión del controlador para procesar tareas usando la "
+"GPU de su ordenador "
#: ../sched/sched_send.cpp:1099
msgid ""
"Upgrade to the latest driver to use all of this project's GPU applications"
msgstr ""
-"Actualiza al último driver para usar todas las aplicaciones de GPU de este "
-"proyecto"
+"Actualice a la última versión del controlador para usar todas las "
+"aplicaciones de GPU de este proyecto"
#: ../sched/sched_send.cpp:1118
msgid ""
@@ -146,7 +147,7 @@ msgid ""
"the current version"
msgstr ""
"Es necesaria una nueva versión de BOINC para usar su GPU NVIDIA; por favor "
-"actualízelo a la versión actual"
+"actualícelo a la versión actual"
# 94%
#: ../sched/sched_send.cpp:1146
diff --git a/locale/es/BOINC-Manager.mo b/locale/es/BOINC-Manager.mo
index e7236ec..0291806 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
index 4f6ab15..0b4083f 100644
--- a/locale/es/BOINC-Manager.po
+++ b/locale/es/BOINC-Manager.po
@@ -7,8 +7,8 @@ msgstr ""
"Project-Id-Version: BOINC Manager 4.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-06-18 11:32-0500\n"
-"PO-Revision-Date: 2013-08-29 18:47+0000\n"
-"Last-Translator: David M <davidcomp2 at telefonica dot net>\n"
+"PO-Revision-Date: 2013-09-22 20:35+0000\n"
+"Last-Translator: Anonymous Pootle User\n"
"Language-Team: BOINC Development Team <rwalton at ssl.berkeley.edu>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
@@ -22,7 +22,7 @@ msgstr ""
"X-Poedit-SearchPath-1: clientgui/msw\n"
"X-Poedit-SearchPath-2: clientgui/gtk\n"
"X-Poedit-SearchPath-3: clientgui/mac\n"
-"X-POOTLE-MTIME: 1377802038.0\n"
+"X-POOTLE-MTIME: 1379882153.0\n"
"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
# 81%
@@ -445,7 +445,7 @@ msgstr "Cerrar el cliente actualmente conectado"
#: clientgui/AdvancedFrame.cpp:566
msgid "Run CPU &benchmarks"
-msgstr "&Ejecutar pruebas de rendimiento"
+msgstr "Ejecutar &pruebas de rendimiento de la CPU"
#: clientgui/AdvancedFrame.cpp:567
msgid "Runs BOINC CPU benchmarks"
diff --git a/locale/fi/BOINC-Android.po b/locale/fi/BOINC-Android.po
index de57687..69a0438 100644
--- a/locale/fi/BOINC-Android.po
+++ b/locale/fi/BOINC-Android.po
@@ -1,23 +1,20 @@
-# Translations template for PROJECT.
+# Finnish translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-08-30 18:28+0000\n"
"Last-Translator: Sami Nordlund <sami.nordlund at kolumbus.fi>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: fi\n"
+"Language-Team: fi <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1377887293.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +48,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Anna projektin URL"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Tilihallitsijan pyytämä"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Ei internet-yhteyttä"
@@ -191,6 +193,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Luo"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Tilihallitsijan pyytämä"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Salasana:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Kirjoita uudelleen:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -208,6 +238,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Salasanat eivät täsmää"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Anna käyttäjänimi"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Anna sähköpostiosoite"
@@ -248,6 +283,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "Tilin luonti on poistettu käytöstä tässä projektissa"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -293,6 +332,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Kirjaudu"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Tilihallitsijan pyytämä"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -335,6 +383,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Asetukset"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Navigointi"
@@ -448,7 +500,8 @@ msgstr "Pienin varaustaso"
msgctxt "battery_charge_min_pct_description"
msgid "BOINC suspends computation below defined battery charge level."
msgstr ""
-"BOINC hyllyttää laskennan kun asetettu akun varaustason alaraja saavutetaan."
+"BOINC hyllyttää laskennan kun asetettu akun varaustason alaraja "
+"saavutetaan."
msgctxt "battery_temperature_max_header"
msgid "Max. battery temperature"
@@ -459,8 +512,8 @@ msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
-"BOINC hyllyttää laskennan kun asetettu akun lämpötilaraja saavutetaan. Tätä "
-"arvoa ei suositella muutettavaksi."
+"BOINC hyllyttää laskennan kun asetettu akun lämpötilaraja saavutetaan. "
+"Tätä arvoa ei suositella muutettavaksi."
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
@@ -650,6 +703,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Nollaa"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -679,6 +744,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Nollaa"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Tilihallitsijan pyytämä"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Haluatko varmasti nollata"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -834,6 +913,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Hylkää"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Luetaan projekteja…"
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1034,3 +1119,4 @@ msgid ""
msgstr ""
"© 2003–2013 Kalifornian yliopisto, Berkeley.\n"
"Kaikki oikeudet pidätetään."
+
diff --git a/locale/fr/BOINC-Android.po b/locale/fr/BOINC-Android.po
index 5eaa9fa..514f311 100644
--- a/locale/fr/BOINC-Android.po
+++ b/locale/fr/BOINC-Android.po
@@ -1,23 +1,21 @@
-# Translations template for PROJECT.
+# French translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-09-20 20:14+0000\n"
"Last-Translator: Christophe Lherieau <skimpax at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: fr\n"
+"Language-Team: fr <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=(((n >= 0 && n <= 2) && (n != 2)) ? 0 : "
+"1)\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=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1379708097.0\n"
#. app global
#, fuzzy
@@ -52,6 +50,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Veuillez saisir l'URL du projet"
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Pas de connexion internet"
@@ -176,7 +178,7 @@ msgstr "e-mail :"
msgctxt "attachproject_registration_header_username"
msgid "Name:"
-msgstr ""
+msgstr "Nom :"
msgctxt "attachproject_registration_header_teamname"
msgid "Team:"
@@ -184,7 +186,7 @@ msgstr ""
msgctxt "attachproject_registration_header_pwd"
msgid "Password:"
-msgstr ""
+msgstr "Mot de passe :"
msgctxt "attachproject_registration_header_pwd_confirm"
msgid "… Retype:"
@@ -194,6 +196,32 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Mot de passe :"
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -211,6 +239,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Veuillez saisir l'URL du projet"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -251,6 +284,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -296,6 +333,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -320,9 +365,10 @@ msgctxt "tab_status"
msgid "Status"
msgstr ""
+#, fuzzy
msgctxt "tab_projects"
msgid "Projects"
-msgstr ""
+msgstr "Projet :"
msgctxt "tab_tasks"
msgid "Tasks"
@@ -336,6 +382,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -564,7 +614,7 @@ msgstr ""
msgctxt "projects_add"
msgid "Add project"
-msgstr ""
+msgstr "Ajouter le projet"
msgctxt "projects_icon"
msgid "Project icon"
@@ -648,6 +698,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -677,6 +739,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -832,6 +906,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1013,9 +1092,10 @@ msgctxt "about_title"
msgid "About"
msgstr ""
+#, fuzzy
msgctxt "about_name"
msgid "BOINC"
-msgstr ""
+msgstr "BOINC"
msgctxt "about_version"
msgid "Version"
@@ -1030,3 +1110,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/he/BOINC-Android.po b/locale/he/BOINC-Android.po
index f9f8fde..ed83456 100644
--- a/locale/he/BOINC-Android.po
+++ b/locale/he/BOINC-Android.po
@@ -1,20 +1,19 @@
-# Translations template for PROJECT.
+# Hebrew translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: he\n"
+"Language-Team: he <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +48,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +192,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +234,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +278,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +327,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +375,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +691,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +732,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +899,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1102,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/hr/BOINC-Android.po b/locale/hr/BOINC-Android.po
index 79ff005..23473c8 100644
--- a/locale/hr/BOINC-Android.po
+++ b/locale/hr/BOINC-Android.po
@@ -1,20 +1,22 @@
-# Translations template for PROJECT.
+# Croatian translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: hr\n"
+"Language-Team: hr <LL at li.org>\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"
"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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +51,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +195,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +237,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +281,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +330,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +378,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +694,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +735,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +902,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1105,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/hu/BOINC-Android.po b/locale/hu/BOINC-Android.po
index 9c9b1cb..602dc44 100644
--- a/locale/hu/BOINC-Android.po
+++ b/locale/hu/BOINC-Android.po
@@ -1,37 +1,36 @@
-# Translations template for PROJECT.
+# Hungarian translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-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: hu\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-09 09:26+0000\n"
+"Last-Translator: Gabor <csega at mailbox.hu>\n"
+"Language-Team: hu <LL at li.org>\n"
+"Plural-Forms: nplurals=1; plural=(0)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
msgctxt "app_name"
msgid "BOINC"
-msgstr ""
+msgstr "BOINC"
#. generic. used by multiple Activities/tabs
msgctxt "generic_loading"
msgid "Loading! Please wait…"
-msgstr ""
+msgstr "Betöltés! Kérjük, várjon..."
#. attach project
#. project list
msgctxt "attachproject_list_header"
msgid "Choose a project:"
-msgstr ""
+msgstr "Válasszon projektet:"
msgctxt "attachproject_list_manual_button"
msgid "Add project by URL"
@@ -43,15 +42,19 @@ msgstr ""
msgctxt "attachproject_list_manual_dialog_button"
msgid "Add project"
-msgstr ""
+msgstr "Projekt hozzáadása"
msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
-msgstr ""
+msgstr "Nincs internetkapcsolat"
#. project login
msgctxt "attachproject_login_loading"
@@ -60,7 +63,7 @@ msgstr ""
msgctxt "attachproject_login_image_description"
msgid "Project logo."
-msgstr ""
+msgstr "Projekt logó."
msgctxt "attachproject_login_header_general_area"
msgid "General area:"
@@ -72,7 +75,7 @@ msgstr ""
msgctxt "attachproject_login_header_description"
msgid "Description:"
-msgstr ""
+msgstr "Leírás:"
msgctxt "attachproject_login_header_home"
msgid "Home:"
@@ -80,19 +83,19 @@ msgstr ""
msgctxt "attachproject_login_header_url"
msgid "Website:"
-msgstr ""
+msgstr "Weboldal:"
msgctxt "attachproject_login_header_platform"
msgid "Android:"
-msgstr ""
+msgstr "Android:"
msgctxt "attachproject_login_platform_supported"
msgid "This project supports Android devices"
-msgstr ""
+msgstr "Ez a projekt támogatja az Android eszközöket"
msgctxt "attachproject_login_platform_not_supported"
msgid "This project does not support Android devices"
-msgstr ""
+msgstr "Ez a projekt nem támogatja az Android eszközöket"
msgctxt "attachproject_login_category_terms_of_use"
msgid "Terms of use for"
@@ -110,15 +113,15 @@ msgstr ""
msgctxt "attachproject_login_header_id_email"
msgid "eMail:"
-msgstr ""
+msgstr "eMail:"
msgctxt "attachproject_login_header_id_name"
msgid "Name:"
-msgstr ""
+msgstr "Név:"
msgctxt "attachproject_login_header_pwd"
msgid "Password:"
-msgstr ""
+msgstr "Jelszó:"
msgctxt "attachproject_login_category_creation"
msgid "New to"
@@ -189,6 +192,32 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Jelszó:"
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +235,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +279,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +328,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +376,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +692,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +733,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +900,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1103,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/hu/BOINC-Client.mo b/locale/hu/BOINC-Client.mo
index 031e89a..b24d694 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 cce65a9..5594377 100644
--- a/locale/hu/BOINC-Client.po
+++ b/locale/hu/BOINC-Client.po
@@ -7,7 +7,7 @@ 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: 2013-08-29 12:31+0000\n"
+"PO-Revision-Date: 2013-10-09 09:28+0000\n"
"Last-Translator: Gabor <csega at mailbox.hu>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"Language: hu\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n !=1);\n"
"X-Generator: Pootle 2.5.0\n"
-"X-POOTLE-MTIME: 1377779517.0\n"
+"X-POOTLE-MTIME: 1381310913.0\n"
#: acct_mgr.cpp:448 acct_mgr.cpp:457
msgid "Message from account manager"
@@ -151,9 +151,9 @@ msgstr ""
# 94%
#: ../sched/sched_send.cpp:1146
#, c-format
-#, c-format, fuzzy
+#, c-format, c-format
msgid "An %s GPU is required to run tasks for this project"
-msgstr "Ezen projekt feladatainak futtatásához ATI GPU szükséges"
+msgstr "%s GPU szükséges a projekt feladatainak futtatásához"
#: ../sched/sched_send.cpp:1262
msgid "No tasks are available for the applications you have selected."
@@ -172,6 +172,7 @@ msgstr "Újabb BOINC verzió szükséges, töltse le a legfrissebbet"
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 az Ön beállításai miatt nem futtathatók"
#: ../sched/sched_types.cpp:254
msgid "Unknown app name in app_info.xml"
diff --git a/locale/hu/BOINC-Manager.mo b/locale/hu/BOINC-Manager.mo
index f02b9d2..d12e07a 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 d7479f7..e791a67 100644
--- a/locale/hu/BOINC-Manager.po
+++ b/locale/hu/BOINC-Manager.po
@@ -7,29 +7,30 @@ msgstr ""
"Project-Id-Version: BOINC Manager 5.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-06-18 11:32-0500\n"
-"PO-Revision-Date: 2013-05-13 10:38+0200\n"
-"Last-Translator: Robee <roy512 at freemail.hu>\n"
+"PO-Revision-Date: 2013-10-09 09:31+0000\n"
+"Last-Translator: Gabor <csega at mailbox.hu>\n"
"Language-Team: BOINC Development Team <rwalton at ssl.berkeley.edu>\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.1.6\n"
+"X-Generator: Pootle 2.5.0\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-POOTLE-MTIME: 1381311093.0\n"
"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
# 81%
#: clientgui/AccountInfoPage.cpp:387
#, c-format
-#, fuzzy, c-format
+#, c-format, c-format
msgid "Identify your account at %s"
-msgstr "Fiókjának azonosítása"
+msgstr "Fiókjának azonosítása itt: %s"
#: clientgui/AccountInfoPage.cpp:393
msgid ""
@@ -144,18 +145,26 @@ msgstr "Fiókkezelő használata"
#: clientgui/AccountInfoPage.cpp:587
msgid "The minimum username length for this project is 1. Please enter a different username."
msgstr ""
+"A felhasználónév minimális hossza ennél a projektnél 1. Kérjük, írjon be "
+"másik nevet."
#: clientgui/AccountInfoPage.cpp:592
msgid "The minimum username length for this account manager is 1. Please enter a different username."
msgstr ""
+"A felhasználónév minimális hossza ennél a fiókkezelőnél 1. Kérjük, írjon be "
+"másik nevet."
#: clientgui/AccountInfoPage.cpp:598
msgid "The minimum email address length for this project is 1. Please enter a different email address."
msgstr ""
+"Az email cím minimális hossza ennél a projektnél 1. Kérjük, írjon be másik "
+"email címet."
#: clientgui/AccountInfoPage.cpp:603
msgid "The minimum email address length for this account manager is 1. Please enter a different email address."
msgstr ""
+"Az email cím minimális hossza ennél a fiókkezelőnél 1. Kérjük, írjon be "
+"másik email címet."
#: clientgui/AccountInfoPage.cpp:616
#, c-format
@@ -450,9 +459,8 @@ msgstr "Minden függőben lévő hálózati kommunikáció folytatása"
# 94%
#: clientgui/AdvancedFrame.cpp:576
-#, fuzzy
msgid "Read config files"
-msgstr "Konfigurációs fájl beolvasása"
+msgstr "Konfigurációs fájlok beolvasása"
#: clientgui/AdvancedFrame.cpp:577
msgid "Read configuration info from cc_config.xml and any app_config.xml files"
diff --git a/locale/hu/BOINC-Project-Generic.po b/locale/hu/BOINC-Project-Generic.po
index f73b531..f7fb593 100644
--- a/locale/hu/BOINC-Project-Generic.po
+++ b/locale/hu/BOINC-Project-Generic.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-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: 2013-08-29 12:59+0000\n"
+"PO-Revision-Date: 2013-10-09 09:36+0000\n"
"Last-Translator: Gabor <csega at mailbox.hu>\n"
"Language-Team: \n"
"Language: hu\n"
@@ -21,7 +21,7 @@ msgstr ""
"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
"X-Poedit-SearchPath-0: html\\user\n"
"X-Poedit-Basepath: C:\\Src\\BOINCSVN\\trunk\\boinc\n"
-"X-POOTLE-MTIME: 1377781152.0\n"
+"X-POOTLE-MTIME: 1381311419.0\n"
# The name of this language in this language
msgid "LANG_NAME_NATIVE"
@@ -2124,8 +2124,9 @@ msgid "Used in community functions"
msgstr "Közösségi funkciókhoz használt"
#: ../inc/user.inc:217 ../user/weak_auth.php:25
+#, fuzzy
msgid "Account keys"
-msgstr ""
+msgstr "Fiókkulcs"
#: ../inc/user.inc:222
msgid "Preferences"
@@ -4582,42 +4583,37 @@ msgid "Notification not found"
msgstr "Nem található értesítés"
#: ../user/friend.php:223
-#, fuzzy
msgid "Friend confirmed"
msgstr "Barátság megerősítve"
#: ../user/friend.php:224
msgid "You are now friends with %1."
-msgstr ""
+msgstr "%1 az Ön barátja"
# 94%
#: ../user/friend.php:232
-#, fuzzy
msgid "Cancel friendship?"
-msgstr "Barátság megszüntetése"
+msgstr "Törli a barátságot?"
#: ../user/friend.php:234
msgid "Are you sure you want to cancel your friendship with %1?"
-msgstr ""
+msgstr "Biztos benne, hogy törli a barátságot vele: %1?"
#: ../user/friend.php:239
msgid "Stay friends"
-msgstr ""
+msgstr "Barátság megtartása"
#: ../user/friend.php:249
-#, fuzzy
msgid "Friendship cancelled"
-msgstr "Barátság megerősítve"
+msgstr "Barátság törölve"
#: ../user/friend.php:250
-#, fuzzy
msgid "Your friendship with %1 has been cancelled."
-msgstr "%1 és az Ön barátsága megerősítve."
+msgstr "%1 és az Ön barátsága törölve."
#: ../user/get_passwd.php:25
-#, fuzzy
msgid "Forgot your account info?"
-msgstr "egyéb fiókinformáció"
+msgstr "Elfelejtette fiókinformációit?"
#: ../user/get_passwd.php:28
msgid ""
@@ -4629,6 +4625,8 @@ 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 ""
diff --git a/locale/hu/BOINC-Setup.mo b/locale/hu/BOINC-Setup.mo
index d6a3a47..c6e21c3 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 4ca0b5f..a2757f8 100644
--- a/locale/hu/BOINC-Setup.po
+++ b/locale/hu/BOINC-Setup.po
@@ -7,7 +7,7 @@ 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: 2013-08-29 12:31+0000\n"
+"PO-Revision-Date: 2013-10-09 09:37+0000\n"
"Last-Translator: Gabor <csega at mailbox.hu>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"Language: hu\n"
@@ -20,11 +20,11 @@ msgstr ""
"X-Poedit-KeywordsList: _\n"
"X-Poedit-Basepath: /Volumes/Cheer/BOINC_GIT/boinc_trunk\n"
"X-Poedit-SearchPath-0: mac_installer\n"
-"X-POOTLE-MTIME: 1377779517.0\n"
+"X-POOTLE-MTIME: 1381311478.0\n"
#: mac_installer/Installer.cpp:132
#, c-format
-#, c-format, fuzzy
+#, c-format, c-format
msgid "Sorry, this version of %s requires system 10.4 or higher."
msgstr "Sajnos a(z) %s ezen verziója 10.4 vagy nagyobb rendszerverziót igényel."
diff --git a/locale/hu/BOINC-Web.mo b/locale/hu/BOINC-Web.mo
index d464707..ac14003 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 945008c..bcdd8a2 100644
--- a/locale/hu/BOINC-Web.po
+++ b/locale/hu/BOINC-Web.po
@@ -7,7 +7,7 @@ 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: 2013-06-05 19:50+0200\n"
+"PO-Revision-Date: 2013-10-09 09:40+0000\n"
"Last-Translator: Gabor <csega at mailbox.hu>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"Language: hu\n"
@@ -15,11 +15,12 @@ msgstr ""
"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-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-BOINC-UTF8-Marker: 简体中文, 日本語\n"
+"X-POOTLE-MTIME: 1381311614.0\n"
"X-Poedit-KeywordsList: tra\n"
#: projects.inc:14
@@ -34,7 +35,7 @@ msgstr "Oxfordi Egyetem"
#: projects.inc:20
msgid "Seismology"
-msgstr ""
+msgstr "Szeizmológia"
#: projects.inc:21
msgid ""
@@ -49,7 +50,7 @@ msgstr ""
#: projects.inc:28
msgid "Environmental research"
-msgstr ""
+msgstr "Környezeti kutatás"
#: projects.inc:29
msgid ""
@@ -314,9 +315,8 @@ msgstr ""
# 75%
#: projects.inc:196
-#, fuzzy
msgid "Astronomy, Physics, and Chemistry"
-msgstr "Csillagászat/Fizika/Kémia"
+msgstr "Csillagászat, fizika és kémia"
#: projects.inc:202 projects.inc:241 projects.inc:249
msgid "Astronomy"
@@ -364,7 +364,6 @@ msgstr ""
# 95%
#: projects.inc:240
-#, fuzzy
msgid "University of Illinois at Urbana-Champaign"
msgstr "Illinois-i Egyetem, Urbana-Champaign"
@@ -790,7 +789,7 @@ msgstr "Verziótörténet"
#: download.php:136
msgid "GPU computing"
-msgstr ""
+msgstr "GPU számítás"
#: download.php:154
msgid "BOINC: compute for science"
@@ -908,9 +907,8 @@ msgstr "24 órás átlag:"
# 80%
#: index.php:55
-#, fuzzy
msgid "PetaFLOPS."
-msgstr "TeraFLOPS."
+msgstr "PetaFLOPS."
#: index.php:67
msgid "News"
@@ -934,7 +932,7 @@ msgstr ""
#: index.php:88
msgid "Links"
-msgstr ""
+msgstr "Linkek"
#: index.php:94
#, php-format
diff --git a/locale/it_IT/BOINC-Android.po b/locale/it_IT/BOINC-Android.po
index 7762237..e7e8296 100644
--- a/locale/it_IT/BOINC-Android.po
+++ b/locale/it_IT/BOINC-Android.po
@@ -1,23 +1,20 @@
-# Translations template for PROJECT.
+# Italian (Italy) translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-08-30 10:54+0000\n"
"Last-Translator: Gianfranco <costamagnagianfranco at yahoo.it>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: it_IT\n"
+"Language-Team: it_IT <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1377860071.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +48,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Aggiungi l'URL del progetto"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Richiesto dal gestore account"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Connessione Internet assente"
@@ -193,6 +195,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Crea"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Richiesto dal gestore account"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Password:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Ripeti:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -210,6 +240,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Password non corrispondenti"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Per favore inserisci un nome utente"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Per favore inserisci un indirizzo eMail"
@@ -250,6 +285,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "La creazione account è disabilitata su questo progetto"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -295,6 +334,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Log in"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Richiesto dal gestore account"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -337,6 +385,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Preferenze"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Navigazione"
@@ -462,8 +514,8 @@ msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
-"BOINC sospende l'elaborazione sopra al livello definito di temperatura della "
-"batteria. Non è raccomandato il cambiamento di questo valore."
+"BOINC sospende l'elaborazione sopra al livello definito di temperatura "
+"della batteria. Non è raccomandato il cambiamento di questo valore."
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
@@ -480,7 +532,8 @@ msgstr "Minimo spazio su disco"
msgctxt "prefs_disk_min_free_gb_description"
msgid "How much of your device's storage space shall stay free?"
msgstr ""
-"Quanto dello spazio di salvataggio del tuo dispositivo deve rimanere libero?"
+"Quanto dello spazio di salvataggio del tuo dispositivo deve rimanere "
+"libero?"
msgctxt "prefs_network_daily_xfer_limit_mb_header"
msgid "Daily transfer limit"
@@ -656,6 +709,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Reset"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -685,6 +750,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Reset"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Richiesto dal gestore account"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Sei sicuro di voler resettare"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -840,6 +919,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Annulla"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Lettura progetti…"
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1046,3 +1131,4 @@ msgid ""
msgstr ""
"© 2003–2013 University of California, Berkeley.\n"
"Tutti i diritti riservati."
+
diff --git a/locale/ja/BOINC-Android.po b/locale/ja/BOINC-Android.po
index ebc94a9..3ccc4b5 100644
--- a/locale/ja/BOINC-Android.po
+++ b/locale/ja/BOINC-Android.po
@@ -1,20 +1,19 @@
-# Translations template for PROJECT.
+# Japanese translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: ja\n"
+"Language-Team: ja <LL at li.org>\n"
+"Plural-Forms: nplurals=1; plural=(0)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +48,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +192,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +234,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +278,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +327,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +375,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +691,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +732,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +899,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1102,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/ko/BOINC-Android.po b/locale/ko/BOINC-Android.po
index 24335d2..3775885 100644
--- a/locale/ko/BOINC-Android.po
+++ b/locale/ko/BOINC-Android.po
@@ -1,22 +1,20 @@
-# Translations template for PROJECT.
+# Korean translations for BOINC.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the BOINC project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: BOINC 7.2.x\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-09-01 09:08+0900\n"
"Last-Translator: Lee Kangsan <treppolse at gmail.com>\n"
"Language-Team: SETIKAH at HOME\n"
-"Language: ko\n"
+"Plural-Forms: nplurals=1; plural=(0)\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-Generator: Poedit 1.5.7\n"
"Generated-By: Babel 1.0dev\n"
-"X-Poedit-SourceCharset: UTF-8\n"
#. app global
msgctxt "app_name"
@@ -50,6 +48,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "프로젝트 URL를 입력하세요"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "계정 관리자에서 요청함"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "인터넷 연결이 되지 않았습니다"
@@ -190,6 +193,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "생성"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "계정 관리자에서 요청함"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "비밀번호:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… 재입력:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -207,6 +238,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "비밀번호가 일치하지 않습니다"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "사용자 이름을 입력해 주세요"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "이메일 주소를 입력해 주세요"
@@ -247,6 +283,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "이 프로젝트는 계정 생성을 할 수 없습니다"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -292,6 +332,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "로그인"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "계정 관리자에서 요청함"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -334,6 +383,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "환경 설정"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "안내"
@@ -646,6 +699,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "재설정"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -675,6 +740,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "재설정"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "계정 관리자에서 요청함"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "다음 프로젝트가 재설정됩니다 괘찮습니까: "
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -830,6 +909,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "중단"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "프로젝트를 불러오는 중…"
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1030,3 +1115,4 @@ msgid ""
msgstr ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
+
diff --git a/locale/lt/BOINC-Android.po b/locale/lt/BOINC-Android.po
index 6885783..34694a1 100644
--- a/locale/lt/BOINC-Android.po
+++ b/locale/lt/BOINC-Android.po
@@ -1,20 +1,21 @@
-# Translations template for PROJECT.
+# Lithuanian translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: lt\n"
+"Language-Team: lt <LL at li.org>\n"
+"Plural-Forms: nplurals=3; plural=((((n % 10) == 1) && (!((n % 100) >= 11 "
+"&& (n % 100) <= 19))) ? 0 : (((n % 10) >= 2 && (n % 10) <= 9) && (!((n % "
+"100) >= 11 && (n % 100) <= 19))) ? 1 : 2)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +50,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +194,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +236,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +280,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +329,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +377,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +693,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +734,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +901,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1104,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/lv/BOINC-Android.po b/locale/lv/BOINC-Android.po
index 07f9603..a0ee35f 100644
--- a/locale/lv/BOINC-Android.po
+++ b/locale/lv/BOINC-Android.po
@@ -1,20 +1,20 @@
-# Translations template for PROJECT.
+# Latvian translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: lv\n"
+"Language-Team: lv <LL at li.org>\n"
+"Plural-Forms: nplurals=3; plural=((n == 0) ? 0 : (((n % 10) == 1) && ((n "
+"% 100) != 11)) ? 1 : 2)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +49,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +193,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +235,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +279,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +328,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +376,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +692,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +733,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +900,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1103,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/nb/BOINC-Android.po b/locale/nb/BOINC-Android.po
index e5ecf56..ba4cf87 100644
--- a/locale/nb/BOINC-Android.po
+++ b/locale/nb/BOINC-Android.po
@@ -1,20 +1,19 @@
-# Translations template for PROJECT.
+# Norwegian Bokmål translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: nb\n"
+"Language-Team: nb <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +48,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +192,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +234,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +278,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +327,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +375,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +691,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +732,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +899,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1102,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/nl/BOINC-Android.po b/locale/nl/BOINC-Android.po
index d57f3b8..2334b99 100644
--- a/locale/nl/BOINC-Android.po
+++ b/locale/nl/BOINC-Android.po
@@ -1,23 +1,20 @@
-# Translations template for PROJECT.
+# Dutch translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-09-20 18:44+0000\n"
"Last-Translator: Rene <oskamjr at ziggo.nl>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: nl\n"
+"Language-Team: nl <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1379702649.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +48,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Projectspecifieke URL invoeren"
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Geen internetverbinding"
@@ -105,8 +106,8 @@ msgid ""
"By creating an account with this project, you accept the terms of use as "
"shown above."
msgstr ""
-"Het aanmaken van een account bij dit project impliceert acceptatie van de "
-"gebruiksvoorwaarden zoals hierboven beschreven."
+"Het aanmaken van een account bij dit project impliceert acceptatie van de"
+" gebruiksvoorwaarden zoals hierboven beschreven."
msgctxt "attachproject_login_category_login"
msgid "Sign in with existing account"
@@ -193,6 +194,33 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Aanmaken"
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Wachtwoord:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "... Herhalen:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -210,6 +238,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Wachtwoorden zijn niet identiek"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Voer gebruikersnaam in"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Voer uw e-mailadres in"
@@ -250,6 +283,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "Aanmaken van een account is voor dit project niet mogelijk"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -295,6 +332,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Aanmelden"
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -337,6 +382,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Voorkeursinstellingen"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Navigatie"
@@ -649,6 +698,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -678,6 +739,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -833,6 +906,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Afbreken"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Projecten inlezen..."
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1034,3 +1113,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/pl/BOINC-Android.po b/locale/pl/BOINC-Android.po
index fb9bd65..588ad74 100644
--- a/locale/pl/BOINC-Android.po
+++ b/locale/pl/BOINC-Android.po
@@ -1,20 +1,21 @@
-# Translations template for PROJECT.
+# Polish translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: pl\n"
+"Language-Team: pl <LL at li.org>\n"
+"Plural-Forms: nplurals=3; plural=((n == 1) ? 0 : ((((n % 10) >= 2 && (n %"
+" 10) <= 4) && (!((n % 100) >= 12 && (n % 100) <= 14))) && (!((n % 100) >="
+" 22 && (n % 100) <= 24))) ? 1 : 2)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +50,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +194,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +236,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +280,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +329,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +377,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +693,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +734,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +901,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1104,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/pt_BR/BOINC-Android.po b/locale/pt_BR/BOINC-Android.po
index 382a4fa..8cf9a75 100644
--- a/locale/pt_BR/BOINC-Android.po
+++ b/locale/pt_BR/BOINC-Android.po
@@ -1,20 +1,19 @@
-# Translations template for PROJECT.
+# Portuguese (Brazil) translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: pt_BR\n"
+"Language-Team: pt_BR <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n >= 0 && n <= 1) ? 0 : 1)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +48,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +192,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +234,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +278,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +327,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +375,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +691,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +732,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +899,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1102,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/pt_PT/BOINC-Android.po b/locale/pt_PT/BOINC-Android.po
index 9bb7a51..76b9dff 100644
--- a/locale/pt_PT/BOINC-Android.po
+++ b/locale/pt_PT/BOINC-Android.po
@@ -1,20 +1,19 @@
-# Translations template for PROJECT.
+# Portuguese (Portugal) translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: 2013-09-03 15:52-0000\n"
-"Last-Translator: Miguel Veiga <Miguel.veig at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: pt_PT\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-09-03 14:55+0000\n"
+"Last-Translator: Miguel Filipe Paulino de Sousa <Miguel.veig at gmail.com>\n"
+"Language-Team: pt_PT <LL at li.org>\n"
+"Plural-Forms: nplurals=2; plural=((n == 1) ? 0 : 1)\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-Generator: Poedit 1.5.7\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +48,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Por favor insira o URL do projecto"
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Sem conexão de internet"
@@ -150,9 +153,10 @@ msgctxt "attachproject_login_button_forgotpw"
msgid "Forgot Password"
msgstr "Esqueceu a palavra-passe"
+#, fuzzy
msgctxt "attachproject_login_error_toast"
msgid "Contacting project failed!"
-msgstr ""
+msgstr "Contactando o servidor do projecto..."
msgctxt "attachproject_login_attached"
msgid "Attached"
@@ -191,6 +195,32 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Criar"
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Palavra-passe"
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -208,6 +238,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "As palavras-passe não coincidem"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Por favor insira o nome de utilizador"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Por favor insira o endereço de eMail"
@@ -248,6 +283,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "A criação de conta está desabilitada para este projecto"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -293,6 +332,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Log in"
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -333,6 +380,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Preferências"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Navegação"
@@ -645,6 +696,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -666,14 +729,28 @@ msgctxt "projects_confirm_reset_title"
msgid "Reset project"
msgstr ""
+#, fuzzy
msgctxt "projects_confirm_reset_message"
msgid "Are you sure you want to reset"
-msgstr ""
+msgstr "Tem a certeza que quer remover"
msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Tem a certeza que quer remover"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -683,9 +760,10 @@ msgctxt "tasks_header_elapsed_time"
msgid "Elapsed time:"
msgstr ""
+#, fuzzy
msgctxt "tasks_header_project_paused"
msgid "(suspended)"
-msgstr ""
+msgstr "suspenso"
msgctxt "tasks_header_deadline"
msgid "Deadline:"
@@ -827,6 +905,11 @@ msgstr ""
msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
+msgstr "Abortar"
+
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
msgstr ""
#. eventlog tab strings
@@ -1029,3 +1112,4 @@ msgid ""
msgstr ""
"© 2003-2013 Universidade da Califórnia, Berkeley. \n"
"Todos os Direitos Reservados."
+
diff --git a/locale/ro/BOINC-Android.po b/locale/ro/BOINC-Android.po
index 7071baa..2e87bc6 100644
--- a/locale/ro/BOINC-Android.po
+++ b/locale/ro/BOINC-Android.po
@@ -1,24 +1,21 @@
-# Translations template for PROJECT.
+# Romanian translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-08-30 08:02+0000\n"
"Last-Translator: Marius <marius.sirbu at outlook.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: ro\n"
+"Language-Team: ro <LL at li.org>\n"
+"Plural-Forms: nplurals=3; plural=((n == 1) ? 0 : ((n == 0) || ((n != 1) "
+"&& ((n % 100) >= 1 && (n % 100) <= 19))) ? 1 : 2)\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==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1377849720.0\n"
#. app global
msgctxt "app_name"
@@ -52,6 +49,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Vă rugăm introduceţi URL proiect"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Cerut de managerul de cont"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Nu există conexiune la Internet"
@@ -106,8 +108,8 @@ msgid ""
"By creating an account with this project, you accept the terms of use as "
"shown above."
msgstr ""
-"Prin crearea unui cont la acest proiect, acceptaţi condiţiile de utilizare "
-"aşa cum sunt prezentate mai sus."
+"Prin crearea unui cont la acest proiect, acceptaţi condiţiile de "
+"utilizare aşa cum sunt prezentate mai sus."
msgctxt "attachproject_login_category_login"
msgid "Sign in with existing account"
@@ -194,6 +196,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Creează"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Cerut de managerul de cont"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Parolă:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "... Reintroduceţi:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -211,6 +241,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Parolele nu sunt identice"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Vă rugăm introduceţi numele de utilizator"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Vă rugăm introduceţi adresa dumneavoastră de email"
@@ -251,6 +286,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "Crearea de conturi este dezactivată la acest proiect"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -296,6 +335,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Autentificare"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Cerut de managerul de cont"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -338,6 +386,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Preferințe"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Navigare"
@@ -471,8 +523,8 @@ msgstr "Spaţiu de stocare maxim utilizat"
msgctxt "prefs_disk_max_pct_description"
msgid "How many percent of your device's storage space is BOINC allowed to use?"
msgstr ""
-"Ce procent din spaţiul de stocare al dispozitivului dumneavoastră are voie "
-"să fie utilizat de BOINC?"
+"Ce procent din spaţiul de stocare al dispozitivului dumneavoastră are "
+"voie să fie utilizat de BOINC?"
msgctxt "prefs_disk_min_free_gb_header"
msgid "Min. spare storage"
@@ -517,8 +569,8 @@ msgstr "Pauză la utilizare CPU peste"
msgctxt "prefs_cpu_other_load_suspension_description"
msgid "Determines when BOINC pauses computation due to other app's CPU usage."
msgstr ""
-"Determină când BOINC întrerupe calculele din cauza utilizării CPU a altor "
-"aplicaţii."
+"Determină când BOINC întrerupe calculele din cauza utilizării CPU a altor"
+" aplicaţii."
msgctxt "prefs_cpu_time_max_header"
msgid "CPU limit"
@@ -656,6 +708,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Resetează"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -685,6 +749,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Resetează"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Cerut de managerul de cont"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Sunteţi sigur că doriţi să resetaţi"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -840,6 +918,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Abandonează"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Se citesc proiectele..."
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1042,3 +1126,4 @@ msgid ""
msgstr ""
"© 2003–2013 Universitatea din California, Berkeley.\n"
"Toate Drepturile Rezervate."
+
diff --git a/locale/ru/BOINC-Android.po b/locale/ru/BOINC-Android.po
index 1829562..d4169d6 100644
--- a/locale/ru/BOINC-Android.po
+++ b/locale/ru/BOINC-Android.po
@@ -1,24 +1,23 @@
-# Translations template for PROJECT.
+# Russian translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-09-21 13:54+0000\n"
"Last-Translator: Nikolay Saharov <saharovna at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: ru\n"
+"Language-Team: ru <LL at li.org>\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"
"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%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"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1379771666.0\n"
#. app global
msgctxt "app_name"
@@ -52,6 +51,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Пожалуйста, введите URL проекта"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Запрошено менеджером проектов"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Нет подключения к Интернету"
@@ -77,7 +81,6 @@ msgctxt "attachproject_login_header_description"
msgid "Description:"
msgstr "Описание:"
-# Это типа институт/университет, который владеет проектом
msgctxt "attachproject_login_header_home"
msgid "Home:"
msgstr "Владелец:"
@@ -107,8 +110,8 @@ msgid ""
"By creating an account with this project, you accept the terms of use as "
"shown above."
msgstr ""
-"Создавая учётную запись в этом проекте, вы принимаете условия использования, "
-"которые показаны выше."
+"Создавая учётную запись в этом проекте, вы принимаете условия "
+"использования, которые показаны выше."
msgctxt "attachproject_login_category_login"
msgid "Sign in with existing account"
@@ -195,6 +198,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Создать"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Запрошено менеджером проектов"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Пароль:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Повторить:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -212,6 +243,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Пароли не совпадают"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Введите имя пользователя"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Введите адрес электронной почты"
@@ -252,6 +288,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "Создание учётной записи в данном проекте отключено"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -297,6 +337,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Войти"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Запрошено менеджером проектов"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -339,6 +388,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Настройки"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Навигация"
@@ -522,8 +575,8 @@ msgstr "Пауза при использовании процессора выш
msgctxt "prefs_cpu_other_load_suspension_description"
msgid "Determines when BOINC pauses computation due to other app's CPU usage."
msgstr ""
-"Определяет, когда BOINC останавливает расчёты из-за использования процессора "
-"другими приложениями."
+"Определяет, когда BOINC останавливает расчёты из-за использования "
+"процессора другими приложениями."
msgctxt "prefs_cpu_time_max_header"
msgid "CPU limit"
@@ -561,7 +614,7 @@ msgctxt "prefs_unit_gb"
msgid "GB"
msgstr "ГБ"
-#, c-format, c-format
+#, c-format
msgctxt "prefs_unit_pct"
msgid "%"
msgstr "%"
@@ -661,6 +714,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Сбросить"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -690,6 +755,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Сбросить"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Запрошено менеджером проектов"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Вы действительно хотите перезапустить"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -845,6 +924,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Прервать"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Чтение проектов…"
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -874,7 +959,8 @@ msgstr "Расчёты приостановлены."
msgctxt "suspend_batteries"
msgid "Connect your device to a charger to continue computing."
msgstr ""
-"Подключите ваше устройство к зарядному устройству для продолжения расчётов."
+"Подключите ваше устройство к зарядному устройству для продолжения "
+"расчётов."
msgctxt "suspend_useractive"
msgid "User is active."
@@ -1048,3 +1134,4 @@ msgid ""
msgstr ""
"© 2003-2013 Калифорнийский университет, Беркли.\n"
"Все права защищены."
+
diff --git a/locale/sk/BOINC-Android.po b/locale/sk/BOINC-Android.po
index c585ffe..0737f98 100644
--- a/locale/sk/BOINC-Android.po
+++ b/locale/sk/BOINC-Android.po
@@ -1,1027 +1,1135 @@
-# Translations template for PROJECT.
+# Slovak translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: sk\n"
+"Language-Team: sk <LL at li.org>\n"
+"Plural-Forms: nplurals=3; plural=((n == 1) ? 0 : (n >= 2 && n <= 4) ? 1 :"
+" 2)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
msgctxt "app_name"
msgid "BOINC"
-msgstr ""
+msgstr "BOINC"
#. generic. used by multiple Activities/tabs
msgctxt "generic_loading"
msgid "Loading! Please wait…"
-msgstr ""
+msgstr "Выполняется загрузка! Пожалуйста подождите…"
#. attach project
#. project list
msgctxt "attachproject_list_header"
msgid "Choose a project:"
-msgstr ""
+msgstr "Выберите проект:"
msgctxt "attachproject_list_manual_button"
msgid "Add project by URL"
-msgstr ""
+msgstr "Добавить URL-адрес проекта"
msgctxt "attachproject_list_manual_dialog_title"
msgid "Enter project URL:"
-msgstr ""
+msgstr "Введите URL проекта:"
msgctxt "attachproject_list_manual_dialog_button"
msgid "Add project"
-msgstr ""
+msgstr "Добавить проект"
msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
-msgstr ""
+msgstr "Пожалуйста, введите URL проекта"
+
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Запрошено менеджером проектов"
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
-msgstr ""
+msgstr "Нет подключения к Интернету"
#. project login
msgctxt "attachproject_login_loading"
msgid "Contacting project server…"
-msgstr ""
+msgstr "Установка соединения с сервером проекта…"
msgctxt "attachproject_login_image_description"
msgid "Project logo."
-msgstr ""
+msgstr "Логотип проекта."
msgctxt "attachproject_login_header_general_area"
msgid "General area:"
-msgstr ""
+msgstr "Основная область:"
msgctxt "attachproject_login_header_specific_area"
msgid "Specific area:"
-msgstr ""
+msgstr "Специализация:"
msgctxt "attachproject_login_header_description"
msgid "Description:"
-msgstr ""
+msgstr "Описание:"
msgctxt "attachproject_login_header_home"
msgid "Home:"
-msgstr ""
+msgstr "Владелец:"
msgctxt "attachproject_login_header_url"
msgid "Website:"
-msgstr ""
+msgstr "Веб-сайт:"
msgctxt "attachproject_login_header_platform"
msgid "Android:"
-msgstr ""
+msgstr "Android:"
msgctxt "attachproject_login_platform_supported"
msgid "This project supports Android devices"
-msgstr ""
+msgstr "Этот проект поддерживает устройства на базе Android"
msgctxt "attachproject_login_platform_not_supported"
msgid "This project does not support Android devices"
-msgstr ""
+msgstr "Этот проект не поддерживает устройства на базе Android"
msgctxt "attachproject_login_category_terms_of_use"
msgid "Terms of use for"
-msgstr ""
+msgstr "Условия использования для"
msgctxt "attachproject_login_accept_terms_of_use"
msgid ""
"By creating an account with this project, you accept the terms of use as "
"shown above."
msgstr ""
+"Создавая учётную запись в этом проекте, вы принимаете условия "
+"использования, которые показаны выше."
msgctxt "attachproject_login_category_login"
msgid "Sign in with existing account"
-msgstr ""
+msgstr "Войти с существующей учётной записью"
msgctxt "attachproject_login_header_id_email"
msgid "eMail:"
-msgstr ""
+msgstr "Электронная почта:"
msgctxt "attachproject_login_header_id_name"
msgid "Name:"
-msgstr ""
+msgstr "Имя:"
msgctxt "attachproject_login_header_pwd"
msgid "Password:"
-msgstr ""
+msgstr "Пароль:"
msgctxt "attachproject_login_category_creation"
msgid "New to"
-msgstr ""
+msgstr "Впервые в"
msgctxt "attachproject_login_header_creation_enabled"
msgid "Register an account to participate:"
-msgstr ""
+msgstr "Зарегистрировать учётную запись для участия:"
msgctxt "attachproject_login_header_creation_client_disabled"
msgid "Visit project website to create an account:"
-msgstr ""
+msgstr "Посетить веб-сайт проекта для создания учётной записи:"
msgctxt "attachproject_login_header_creation_disabled"
msgid "Project does currently now allow creation of new accounts!"
-msgstr ""
+msgstr "Проект в данный момент не позволяет создавать новые учётные записи!"
msgctxt "attachproject_login_button_registration"
msgid "Register"
-msgstr ""
+msgstr "Зарегистрироваться"
msgctxt "attachproject_login_button_login"
msgid "Sign in"
-msgstr ""
+msgstr "Войти"
msgctxt "attachproject_login_button_forgotpw"
msgid "Forgot Password"
-msgstr ""
+msgstr "Восстановить пароль"
msgctxt "attachproject_login_error_toast"
msgid "Contacting project failed!"
-msgstr ""
+msgstr "Сбой при установке связи с проектом!"
msgctxt "attachproject_login_attached"
msgid "Attached"
-msgstr ""
+msgstr "Подключен"
#. project registration
msgctxt "attachproject_registration_header"
msgid "Account registration for"
-msgstr ""
+msgstr "Регистрация учётной записи для"
msgctxt "attachproject_registration_header_url"
msgid "Project:"
-msgstr ""
+msgstr "Проект:"
msgctxt "attachproject_registration_header_email"
msgid "eMail:"
-msgstr ""
+msgstr "Электронная почта:"
msgctxt "attachproject_registration_header_username"
msgid "Name:"
-msgstr ""
+msgstr "Имя:"
msgctxt "attachproject_registration_header_teamname"
msgid "Team:"
-msgstr ""
+msgstr "Команда:"
msgctxt "attachproject_registration_header_pwd"
msgid "Password:"
-msgstr ""
+msgstr "Пароль:"
msgctxt "attachproject_registration_header_pwd_confirm"
msgid "… Retype:"
-msgstr ""
+msgstr "… Повторить:"
msgctxt "attachproject_registration_button"
msgid "Create"
+msgstr "Создать"
+
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Запрошено менеджером проектов"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Пароль:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Повторить:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
msgstr ""
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
-msgstr ""
+msgstr "Пользователь не найден"
msgctxt "attachproject_error_short_pwd"
msgid "Password too short"
-msgstr ""
+msgstr "Пароль слишком короткий"
msgctxt "attachproject_error_no_internet"
msgid "Connection failure"
-msgstr ""
+msgstr "Сбой подключения"
msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
-msgstr ""
+msgstr "Пароли не совпадают"
+
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Введите имя пользователя"
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
-msgstr ""
+msgstr "Введите адрес электронной почты"
msgctxt "attachproject_error_no_pwd"
msgid "Please enter a password"
-msgstr ""
+msgstr "Введите пароль"
msgctxt "attachproject_error_no_name"
msgid "Please enter user name"
-msgstr ""
+msgstr "Введите имя пользователя"
msgctxt "attachproject_error_unknown"
msgid "failed"
-msgstr ""
+msgstr "неудача"
msgctxt "attachproject_error_bad_username"
msgid "User name refused"
-msgstr ""
+msgstr "Имя пользователя не принято"
msgctxt "attachproject_error_email_in_use"
msgid "eMail is already in use"
-msgstr ""
+msgstr "Адрес электронной почты уже используется"
msgctxt "attachproject_error_project_down"
msgid "Project is offline"
-msgstr ""
+msgstr "Проект выключен"
msgctxt "attachproject_error_email_bad_syntax"
msgid "eMail refused"
-msgstr ""
+msgstr "Адрес электронной почты не принят"
msgctxt "attachproject_error_bad_pwd"
msgid "Password refused"
-msgstr ""
+msgstr "Пароль не принят"
msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
+msgstr "Создание учётной записи в данном проекте отключено"
+
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
msgstr ""
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
-msgstr ""
+msgstr "Назад"
msgctxt "attachproject_working_finish_button"
msgid "Finish"
-msgstr ""
+msgstr "Готово"
msgctxt "attachproject_working_check_desc"
msgid "Successful"
-msgstr ""
+msgstr "Успешно"
msgctxt "attachproject_working_failed_desc"
msgid "Failed"
-msgstr ""
+msgstr "Неудачно"
msgctxt "attachproject_working_ongoing"
msgid "…"
-msgstr ""
+msgstr "…"
msgctxt "attachproject_working_finished"
msgid "."
-msgstr ""
+msgstr "."
msgctxt "attachproject_working_description"
msgid ":"
-msgstr ""
+msgstr ":"
msgctxt "attachproject_working_connect"
msgid "Connect"
-msgstr ""
+msgstr "Подключиться"
msgctxt "attachproject_working_verify"
msgid "Verify account"
-msgstr ""
+msgstr "Проверить учётную запись"
msgctxt "attachproject_working_register"
msgid "Register account"
-msgstr ""
+msgstr "Зарегистрировать учётную запись"
msgctxt "attachproject_working_login"
msgid "Log in"
+msgstr "Войти"
+
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Запрошено менеджером проектов"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
msgstr ""
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
-msgstr ""
+msgstr "Нажмите здесь для выбора проекта."
msgctxt "main_error"
msgid "Whooops"
-msgstr ""
+msgstr "Упс"
msgctxt "main_error_long"
msgid ""
"…this should not happen!\n"
"Click on the icon to try again."
msgstr ""
+"…этого не должно было произойти!\n"
+"Нажмите на значок BOINC, чтобы попробовать ещё раз."
msgctxt "main_title_icon_desc"
msgid "BOINC icon"
-msgstr ""
+msgstr "Значок BOINC"
#. tab names
msgctxt "tab_status"
msgid "Status"
-msgstr ""
+msgstr "Статус"
msgctxt "tab_projects"
msgid "Projects"
-msgstr ""
+msgstr "Проекты"
msgctxt "tab_tasks"
msgid "Tasks"
-msgstr ""
+msgstr "Задания"
msgctxt "tab_transfers"
msgid "Transfers"
-msgstr ""
+msgstr "Передачи"
msgctxt "tab_preferences"
msgid "Preferences"
+msgstr "Настройки"
+
+msgctxt "tab_notices"
+msgid "Notices"
msgstr ""
msgctxt "tab_desc"
msgid "Navigation"
-msgstr ""
+msgstr "Навигация"
#. status strings
msgctxt "status_running"
msgid "Computing"
-msgstr ""
+msgstr "Выполнение расчётов"
msgctxt "status_running_long"
msgid "Thank you for participating."
-msgstr ""
+msgstr "Спасибо за участие."
msgctxt "status_paused"
msgid "Suspended"
-msgstr ""
+msgstr "Приостановлено"
msgctxt "status_idle"
msgid "Nothing to do"
-msgstr ""
+msgstr "Нечего делать"
msgctxt "status_idle_long"
msgid "Waiting for tasks…"
-msgstr ""
+msgstr "Ожидание заданий…"
msgctxt "status_computing_disabled"
msgid "Suspended"
-msgstr ""
+msgstr "Приостановлено"
msgctxt "status_computing_disabled_long"
msgid "Press play to resume network and computation."
-msgstr ""
+msgstr "Нажмите кнопку Play для возобновления расчётов и передачи данных."
msgctxt "status_launching"
msgid "Starting…"
-msgstr ""
+msgstr "Запуск…"
msgctxt "status_noproject"
msgid "Choose a project to participate in."
-msgstr ""
+msgstr "Выбрать проект для участия."
msgctxt "status_closing"
msgid "Closing…"
-msgstr ""
+msgstr "Закрытие…"
msgctxt "status_benchmarking"
msgid "Benchmarking…"
-msgstr ""
+msgstr "Тестирование производительности…"
msgctxt "status_image_description"
msgid "project image"
-msgstr ""
+msgstr "изображение проекта"
#. preferences tab strings
msgctxt "prefs_loading"
msgid "Reading preferences…"
-msgstr ""
+msgstr "Чтение настроек…"
msgctxt "prefs_submit_button"
msgid "Save"
-msgstr ""
+msgstr "Сохранить"
msgctxt "prefs_dialog_title"
msgid "Enter new value:"
-msgstr ""
+msgstr "Введите новое значение:"
msgctxt "prefs_dialog_title_selection"
msgid "Select:"
-msgstr ""
+msgstr "Выбрать:"
msgctxt "prefs_category_general"
msgid "General"
-msgstr ""
+msgstr "Основные"
msgctxt "prefs_category_network"
msgid "Network"
-msgstr ""
+msgstr "Сеть"
msgctxt "prefs_category_power"
msgid "Power"
-msgstr ""
+msgstr "Питание"
msgctxt "prefs_category_cpu"
msgid "CPU"
-msgstr ""
+msgstr "Процессор"
msgctxt "prefs_category_storage"
msgid "Storage"
-msgstr ""
+msgstr "Диск"
msgctxt "prefs_category_memory"
msgid "Memory"
-msgstr ""
+msgstr "Память"
msgctxt "prefs_category_debug"
msgid "Debug"
-msgstr ""
+msgstr "Отладка"
msgctxt "prefs_show_advanced_header"
msgid "Show advanced preferences and controls…"
-msgstr ""
+msgstr "Показать дополнительные настройки и элементы управления…"
msgctxt "prefs_run_on_battery_header"
msgid "Compute on Battery"
-msgstr ""
+msgstr "Выполнять расчёты при работе от батареи"
msgctxt "battery_charge_min_pct_header"
msgid "Min. battery level"
-msgstr ""
+msgstr "Мин. уровень заряда батареи"
msgctxt "battery_charge_min_pct_description"
msgid "BOINC suspends computation below defined battery charge level."
msgstr ""
+"BOINC приостановит расчёты, когда заряд батареи будет ниже указанного "
+"уровня."
msgctxt "battery_temperature_max_header"
msgid "Max. battery temperature"
-msgstr ""
+msgstr "Макс. температура батареи"
msgctxt "battery_temperature_max_description"
msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
+"BOINC приостановит расчёты, когда температура батареи превысит указанный "
+"уровень. Не рекомендуется менять это значение."
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
-msgstr ""
+msgstr "Макс. используемое пространство памяти"
msgctxt "prefs_disk_max_pct_description"
msgid "How many percent of your device's storage space is BOINC allowed to use?"
msgstr ""
+"Сколько процентов от общего объёма памяти вашего устройства BOINC может "
+"использовать?"
msgctxt "prefs_disk_min_free_gb_header"
msgid "Min. spare storage"
-msgstr ""
+msgstr "Мин. свободное пространство"
msgctxt "prefs_disk_min_free_gb_description"
msgid "How much of your device's storage space shall stay free?"
-msgstr ""
+msgstr "Какой объём памяти вашего устройства должен оставаться свободным?"
msgctxt "prefs_network_daily_xfer_limit_mb_header"
msgid "Daily transfer limit"
-msgstr ""
+msgstr "Ежедневный предел передачи"
msgctxt "prefs_network_daily_xfer_limit_mb_description"
msgid "Limits the daily data traffic caused by BOINC."
-msgstr ""
+msgstr "Ограничивает ежедневный трафик данных, вызванный BOINC."
msgctxt "prefs_network_wifi_only_header"
msgid "Transfer tasks on WiFi only"
-msgstr ""
+msgstr "Передавать задания только по WiFi"
msgctxt "prefs_autostart_header"
msgid "Autostart"
-msgstr ""
+msgstr "Автозапуск"
msgctxt "prefs_show_notification_header"
msgid "Show notification when suspended"
-msgstr ""
+msgstr "Показывать уведомление, когда приостановлен"
msgctxt "prefs_cpu_number_cpus_header"
msgid "Used CPU cores"
-msgstr ""
+msgstr "Используемые ядра процессора"
msgctxt "prefs_cpu_number_cpus_description"
msgid "Limits the number of CPU cores BOINC uses for computation."
msgstr ""
+"Ограничивает количество ядер процессора, которые использует BOINC для "
+"расчётов."
msgctxt "prefs_cpu_other_load_suspension_header"
msgid "Pause at CPU usage above"
-msgstr ""
+msgstr "Пауза при использовании процессора выше"
msgctxt "prefs_cpu_other_load_suspension_description"
msgid "Determines when BOINC pauses computation due to other app's CPU usage."
msgstr ""
+"Определяет, когда BOINC останавливает расчёты из-за использования "
+"процессора другими приложениями."
msgctxt "prefs_cpu_time_max_header"
msgid "CPU limit"
-msgstr ""
+msgstr "Предельное время процессора"
msgctxt "prefs_cpu_time_max_description"
msgid "Limits the CPU time BOINC uses for computation."
-msgstr ""
+msgstr "Ограничивает время процессора, которое использует BOINC для расчётов."
msgctxt "prefs_memory_max_idle_header"
msgid "RAM limit"
-msgstr ""
+msgstr "Ограничение ОЗУ"
msgctxt "prefs_memory_max_idle_description"
msgid "Limits the amount of RAM tasks are allowed to occupy."
-msgstr ""
+msgstr "Ограничивает объём ОЗУ, который задания могут занимать."
msgctxt "prefs_client_log_flags_header"
msgid "BOINC Client log flags"
-msgstr ""
+msgstr "Флаги журнала клиента BOINC"
msgctxt "prefs_gui_log_level_header"
msgid "GUI log level"
-msgstr ""
+msgstr "Уровень журнала GUI"
msgctxt "prefs_gui_log_level_description"
msgid "Specifies verbosity of GUI log messages."
-msgstr ""
+msgstr "Задает уровень детализации сообщений журнала GUI."
msgctxt "prefs_unit_mb"
msgid "MB"
-msgstr ""
+msgstr "МБ"
msgctxt "prefs_unit_gb"
msgid "GB"
-msgstr ""
+msgstr "ГБ"
#, c-format
msgctxt "prefs_unit_pct"
msgid "%"
-msgstr ""
+msgstr "%"
msgctxt "prefs_unit_celcius"
msgid "°C"
-msgstr ""
+msgstr "°C"
#. projects tab strings
msgctxt "projects_loading"
msgid "Reading projects…"
-msgstr ""
+msgstr "Чтение проектов…"
msgctxt "projects_add"
msgid "Add project"
-msgstr ""
+msgstr "Добавить проект"
msgctxt "projects_icon"
msgid "Project icon"
-msgstr ""
+msgstr "Значок проекта"
msgctxt "projects_credits_header"
msgid "Credit:"
-msgstr ""
+msgstr "Очки:"
msgctxt "projects_credits_host_header"
msgid "(on this device)"
-msgstr ""
+msgstr "(на этом устройстве)"
msgctxt "projects_credits_user_header"
msgid "(total)"
-msgstr ""
+msgstr "(всего)"
#. project status strings
msgctxt "projects_status_suspendedviagui"
msgid "Suspended by user"
-msgstr ""
+msgstr "Приостановлен пользователем"
msgctxt "projects_status_dontrequestmorework"
msgid "Won't get new tasks"
-msgstr ""
+msgstr "Не запрашивать новые задания"
msgctxt "projects_status_ended"
msgid "Project ended - OK to remove"
-msgstr ""
+msgstr "Проект завершён - ОК для удаления"
msgctxt "projects_status_detachwhendone"
msgid "Will remove when tasks done"
-msgstr ""
+msgstr "Будет удалён после завершения заданий"
msgctxt "projects_status_schedrpcpending"
msgid "Scheduler request pending"
-msgstr ""
+msgstr "Запрос информации у планировщика"
msgctxt "projects_status_schedrpcinprogress"
msgid "Scheduler request in progress"
-msgstr ""
+msgstr "Производится запрос информации у планировщика"
msgctxt "projects_status_trickleuppending"
msgid "Trickle up message pending"
-msgstr ""
+msgstr "Ожидание промежуточной отправки"
msgctxt "projects_status_backoff"
msgid "Communication scheduled in:"
-msgstr ""
+msgstr "Связь по расписанию:"
#. project controls
msgctxt "projects_control_dialog_title"
msgid "Project commands:"
-msgstr ""
+msgstr "Команды проекта:"
msgctxt "projects_control_update"
msgid "Update"
-msgstr ""
+msgstr "Обновить"
msgctxt "projects_control_remove"
msgid "Remove"
-msgstr ""
+msgstr "Удалить"
msgctxt "projects_control_suspend"
msgid "Suspend"
-msgstr ""
+msgstr "Приостановить"
msgctxt "projects_control_resume"
msgid "Resume"
-msgstr ""
+msgstr "Возобновить"
msgctxt "projects_control_nonewtasks"
msgid "No new tasks"
-msgstr ""
+msgstr "Не запрашивать задания"
msgctxt "projects_control_allownewtasks"
msgid "Allow new tasks"
-msgstr ""
+msgstr "Получать новые задания"
msgctxt "projects_control_reset"
msgid "Reset"
+msgstr "Сбросить"
+
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
msgstr ""
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
-msgstr ""
+msgstr "Удалить проект?"
msgctxt "projects_confirm_detach_message"
msgid "Are you sure you want to remove"
-msgstr ""
+msgstr "Вы действительно хотите удалить"
msgctxt "projects_confirm_detach_message2"
msgid "from BOINC?"
-msgstr ""
+msgstr "из BOINC?"
msgctxt "projects_confirm_detach_confirm"
msgid "Remove"
-msgstr ""
+msgstr "Удалить"
msgctxt "projects_confirm_reset_title"
msgid "Reset project"
-msgstr ""
+msgstr "Перезапустить проект"
msgctxt "projects_confirm_reset_message"
msgid "Are you sure you want to reset"
-msgstr ""
+msgstr "Вы действительно хотите перезапустить"
msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
+msgstr "Сбросить"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Запрошено менеджером проектов"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Вы действительно хотите перезапустить"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
msgstr ""
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
-msgstr ""
+msgstr "Название задания:"
msgctxt "tasks_header_elapsed_time"
msgid "Elapsed time:"
-msgstr ""
+msgstr "Затрачено времени:"
msgctxt "tasks_header_project_paused"
msgid "(suspended)"
-msgstr ""
+msgstr "(приостановлено)"
msgctxt "tasks_header_deadline"
msgid "Deadline:"
-msgstr ""
+msgstr "Крайний срок:"
msgctxt "tasks_result_new"
msgid "new"
-msgstr ""
+msgstr "новый"
msgctxt "tasks_result_files_downloading"
msgid "waiting for download"
-msgstr ""
+msgstr "ожидание загрузки"
msgctxt "tasks_result_files_downloaded"
msgid "download complete"
-msgstr ""
+msgstr "загрузка завершена"
msgctxt "tasks_result_compute_error"
msgid "computation error"
-msgstr ""
+msgstr "ошибка расчётов"
msgctxt "tasks_result_files_uploading"
msgid "uploading"
-msgstr ""
+msgstr "отправка"
msgctxt "tasks_result_files_uploaded"
msgid "upload complete"
-msgstr ""
+msgstr "отправка завершена"
msgctxt "tasks_result_aborted"
msgid "aborted"
-msgstr ""
+msgstr "прервано"
msgctxt "tasks_result_upload_failed"
msgid "upload failed"
-msgstr ""
+msgstr "сбой при отправке"
msgctxt "tasks_active_uninitialized"
msgid "ready"
-msgstr ""
+msgstr "готово"
msgctxt "tasks_active_executing"
msgid "running"
-msgstr ""
+msgstr "выполняется"
msgctxt "tasks_active_suspended"
msgid "suspended"
-msgstr ""
+msgstr "приостановлено"
msgctxt "tasks_active_abort_pending"
msgid "suspending"
-msgstr ""
+msgstr "приостанавливается"
msgctxt "tasks_active_quit_pending"
msgid "suspending"
-msgstr ""
+msgstr "приостанавливается"
msgctxt "tasks_custom_suspended_via_gui"
msgid "suspended"
-msgstr ""
+msgstr "приостановлено"
msgctxt "tasks_custom_project_suspended_via_gui"
msgid "project suspended"
-msgstr ""
+msgstr "проект приостановлен"
msgctxt "tasks_custom_ready_to_report"
msgid "ready to report"
-msgstr ""
+msgstr "готово для подтверждения"
#. confirmation dialog
msgctxt "confirm_abort_task_title"
msgid "Abort task?"
-msgstr ""
+msgstr "Прервать задание?"
msgctxt "confirm_abort_task_message"
msgid "Abort task:"
-msgstr ""
+msgstr "Прервать задание:"
msgctxt "confirm_abort_task_confirm"
msgid "Abort"
-msgstr ""
+msgstr "Прервать"
msgctxt "confirm_cancel"
msgid "Cancel"
-msgstr ""
+msgstr "Отмена"
msgctxt "confirm_image_desc"
msgid "Confirmation dialog"
-msgstr ""
+msgstr "Диалог подтверждения"
#. transfers tab strings
msgctxt "trans_loading"
msgid "Reading transfers…"
-msgstr ""
+msgstr "Чтение списка передач…"
msgctxt "trans_upload"
msgid "Upload"
-msgstr ""
+msgstr "Отправка"
msgctxt "trans_download"
msgid "Download"
-msgstr ""
+msgstr "Загрузка"
msgctxt "trans_retryin"
msgid "retry in"
-msgstr ""
+msgstr "повтор через"
msgctxt "trans_failed"
msgid "failed"
-msgstr ""
+msgstr "неудача"
msgctxt "trans_suspended"
msgid "suspended"
-msgstr ""
+msgstr "приостановлено"
msgctxt "trans_active"
msgid "active"
-msgstr ""
+msgstr "активна"
msgctxt "trans_pending"
msgid "pending"
-msgstr ""
+msgstr "ожидает"
msgctxt "trans_projectbackoff"
msgid "project backoff"
-msgstr ""
+msgstr "запрос к проекту отложен на"
msgctxt "trans_header_name"
msgid "File:"
-msgstr ""
+msgstr "Файл:"
msgctxt "confirm_abort_trans_title"
msgid "Abort transfer?"
-msgstr ""
+msgstr "Прервать передачу?"
msgctxt "confirm_abort_trans_message"
msgid "Abort File:"
-msgstr ""
+msgstr "Прервать файл:"
msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
-msgstr ""
+msgstr "Прервать"
+
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Чтение проектов…"
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
-msgstr ""
+msgstr "Загрузка сообщений журнала…"
msgctxt "eventlog_client_header"
msgid "Client Messages"
-msgstr ""
+msgstr "Сообщения клиента"
msgctxt "eventlog_gui_header"
msgid "GUI Messages"
-msgstr ""
+msgstr "Сообщения GUI"
msgctxt "eventlog_copy_toast"
msgid "Log copied to clipboard."
-msgstr ""
+msgstr "Журнал скопирован в буфер обмена."
msgctxt "eventlog_email_subject"
msgid "Event Log for BOINC on Android:"
-msgstr ""
+msgstr "Журнал событий для BOINC на Android:"
#. suspend reasons
msgctxt "suspend_unknown"
msgid "Computation suspended."
-msgstr ""
+msgstr "Расчёты приостановлены."
msgctxt "suspend_batteries"
msgid "Connect your device to a charger to continue computing."
msgstr ""
+"Подключите ваше устройство к зарядному устройству для продолжения "
+"расчётов."
msgctxt "suspend_useractive"
msgid "User is active."
-msgstr ""
+msgstr "Пользователь работает."
msgctxt "suspend_tod"
msgid "Out of computation time-frame."
-msgstr ""
+msgstr "Закончилось выделенное время для расчётов."
msgctxt "suspend_bm"
msgid "BOINC is benchmarking your device…"
-msgstr ""
+msgstr "BOINC измеряет производительность вашего устройства…"
msgctxt "suspend_disksize"
msgid "Out of disk space."
-msgstr ""
+msgstr "Закончилось свободное место на диске."
msgctxt "suspend_cputhrottle"
msgid "Scheduled CPU throttle."
-msgstr ""
+msgstr "Запланированное ограничение нагрузки процессора."
msgctxt "suspend_noinput"
msgid "No recent user activity."
-msgstr ""
+msgstr "Нет активности пользователя за последнее время."
msgctxt "suspend_delay"
msgid "Initialization delay."
-msgstr ""
+msgstr "Инициализация отложена."
msgctxt "suspend_exclusiveapp"
msgid "An exclusive app is running."
-msgstr ""
+msgstr "Выполняется привилегированное приложение."
msgctxt "suspend_cpu"
msgid "Your device is busy with other apps."
-msgstr ""
+msgstr "Ваше устройство занято другими приложениями."
msgctxt "suspend_network_quota"
msgid "BOINC reached network transfer limit."
-msgstr ""
+msgstr "BOINC достиг ограничения передачи данных по сети."
msgctxt "suspend_os"
msgid "Stopped by Android."
-msgstr ""
+msgstr "Android остановил."
msgctxt "suspend_wifi"
msgid "Not connected to WiFi."
-msgstr ""
+msgstr "Нет подключения к WiFi."
msgctxt "suspend_battery_charging"
msgid "Battery needs to charge before resuming computation."
-msgstr ""
+msgstr "Необходимо подзарядить батарею для продолжения расчётов."
msgctxt "suspend_battery_charging_long"
msgid "Computing will resume when battery charge reaches"
-msgstr ""
+msgstr "Расчёты возобновятся, когда заряд батареи достигнет"
msgctxt "suspend_battery_charging_current"
msgid "currently"
-msgstr ""
+msgstr "в данный момент"
msgctxt "suspend_battery_overheating"
msgid "Waiting for battery to cool down"
-msgstr ""
+msgstr "Ожидание охлаждения батареи"
msgctxt "suspend_user_req"
msgid "Resuming computation…"
-msgstr ""
+msgstr "Возобновление расчётов…"
msgctxt "suspend_network_user_req"
msgid "manually."
-msgstr ""
+msgstr "вручную."
#. rpc reasons
msgctxt "rpcreason_userreq"
msgid "Requested by user"
-msgstr ""
+msgstr "Запрошено пользователем"
msgctxt "rpcreason_needwork"
msgid "To fetch work"
-msgstr ""
+msgstr "Запросить задания"
msgctxt "rpcreason_resultsdue"
msgid "To report completed tasks"
-msgstr ""
+msgstr "Сообщить о завершённых заданиях"
msgctxt "rpcreason_trickleup"
msgid "To send trickle-up message"
-msgstr ""
+msgstr "Отправить промежуточное сообщение"
msgctxt "rpcreason_acctmgrreq"
msgid "Requested by account manager"
-msgstr ""
+msgstr "Запрошено менеджером проектов"
msgctxt "rpcreason_init"
msgid "Project initialization"
-msgstr ""
+msgstr "Инициализация проекта"
msgctxt "rpcreason_projectreq"
msgid "Requested by project"
-msgstr ""
+msgstr "Запрошено проектом"
msgctxt "rpcreason_unknown"
msgid "Unknown reason"
-msgstr ""
+msgstr "Неизвестная причина"
#. menu
msgctxt "menu_refresh"
msgid "Refresh"
-msgstr ""
+msgstr "Обновить"
msgctxt "menu_emailto"
msgid "Send as Email"
-msgstr ""
+msgstr "Отправить письмом"
msgctxt "menu_copy"
msgid "Copy to Clipboard"
-msgstr ""
+msgstr "Копировать в буфер обмена"
msgctxt "menu_eventlog"
msgid "Event Log"
-msgstr ""
+msgstr "Журнал событий"
msgctxt "menu_exit"
msgid "Exit BOINC"
-msgstr ""
+msgstr "Выйти из BOINC"
msgctxt "menu_run_mode_disable"
msgid "Suspend"
-msgstr ""
+msgstr "Приостановить"
msgctxt "menu_run_mode_enable"
msgid "Resume"
-msgstr ""
+msgstr "Возобновить"
msgctxt "menu_about"
msgid "About"
-msgstr ""
+msgstr "О"
msgctxt "menu_help"
msgid "Help"
-msgstr ""
+msgstr "Справка"
#. about dialog
msgctxt "about_button"
msgid "Return"
-msgstr ""
+msgstr "Вернуться"
msgctxt "about_title"
msgid "About"
-msgstr ""
+msgstr "О"
msgctxt "about_name"
msgid "BOINC"
-msgstr ""
+msgstr "BOINC"
msgctxt "about_version"
msgid "Version"
-msgstr ""
+msgstr "Версия"
msgctxt "about_name_long"
msgid "Berkeley Open Infrastructure for Network Computing"
msgstr ""
+"BOINC - Berkeley Open Infrastructure for Network Computing\n"
+"Открытая Инфраструктура для Распределенных Вычислений университета Беркли"
msgctxt "about_copyright"
msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+"© 2003-2013 Калифорнийский университет, Беркли.\n"
+"Все права защищены."
+
diff --git a/locale/sl/BOINC-Android.po b/locale/sl/BOINC-Android.po
index 7ca3ef4..729f876 100644
--- a/locale/sl/BOINC-Android.po
+++ b/locale/sl/BOINC-Android.po
@@ -1,20 +1,20 @@
-# Translations template for PROJECT.
+# Slovenian translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-10-10 12:00-0700\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: sl\n"
+"Language-Team: sl <LL at li.org>\n"
+"Plural-Forms: nplurals=4; plural=(((n % 100) == 1) ? 0 : ((n % 100) == 2)"
+" ? 1 : ((n % 100) >= 3 && (n % 100) <= 4) ? 2 : 3)\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-Generator: Translate Toolkit 1.10.0\n"
"Generated-By: Babel 1.0dev\n"
#. app global
@@ -49,6 +49,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +193,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +235,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +279,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +328,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +376,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +692,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +733,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +900,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1025,3 +1103,4 @@ msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+
diff --git a/locale/templates/BOINC-Android.pot b/locale/templates/BOINC-Android.pot
index b03434a..d7e006d 100644
--- a/locale/templates/BOINC-Android.pot
+++ b/locale/templates/BOINC-Android.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-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"
@@ -49,6 +49,10 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr ""
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr ""
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr ""
@@ -189,6 +193,31 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr ""
+#. account manager
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,6 +235,10 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr ""
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr ""
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr ""
@@ -246,6 +279,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr ""
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -291,6 +328,14 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr ""
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr ""
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -331,6 +376,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr ""
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr ""
@@ -643,6 +692,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr ""
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -672,6 +733,18 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr ""
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr ""
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -827,6 +900,11 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr ""
+#. notices tab strings
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr ""
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
diff --git a/locale/tr/BOINC-Android.po b/locale/tr/BOINC-Android.po
index ff496cf..e5fcdd8 100644
--- a/locale/tr/BOINC-Android.po
+++ b/locale/tr/BOINC-Android.po
@@ -1,23 +1,21 @@
-# Translations template for PROJECT.
+# Turkish translations for OINC Android.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the OINC Android
+# project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: OINC Android 7.2\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-09-07 15:47+0200\n"
"Last-Translator: Aycan Demirel <aycandemirel at hotmail.com>\n"
"Language-Team: Türkçe <LL at li.org>\n"
-"Language: tr\n"
+"Plural-Forms: nplurals=1; plural=(0)\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=1; plural=0;\n"
-"X-Generator: Poedit 1.5.7\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1378149251.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +49,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Lütfen proje adresini girin"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "Hesap yöneticisi tarafından istendi"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "İnternet bağlantısı yok"
@@ -193,6 +196,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Oluştur"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "Hesap yöneticisi tarafından istendi"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Parola:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "Yeniden yazın:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -210,6 +241,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Yazdığınız parolalar aynı değil"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Lütfen kullanıcı adınızı yazın"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Lütfen ePosta adresinizi yazın"
@@ -250,6 +286,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "Hesap oluşturma bu projede devre dışı"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -295,6 +335,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Giriş yap"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "Hesap yöneticisi tarafından istendi"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -337,6 +386,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Tercihler"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Gezinti"
@@ -460,8 +513,8 @@ msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
-"BOINC, pil sıcaklığı bu değerin üzerine çıkarsa hesaplamayı duraklatır. Bu "
-"değeri değiştirmeniz önerilmez."
+"BOINC, pil sıcaklığı bu değerin üzerine çıkarsa hesaplamayı duraklatır. "
+"Bu değeri değiştirmeniz önerilmez."
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
@@ -516,8 +569,8 @@ msgstr "CPU kullanımı fazlaysa duraklat"
msgctxt "prefs_cpu_other_load_suspension_description"
msgid "Determines when BOINC pauses computation due to other app's CPU usage."
msgstr ""
-"BOINC, diğer uygulamaların işlemci kullanımı bu seviyeyi aşarsa, hesaplamayı "
-"duraklatır."
+"BOINC, diğer uygulamaların işlemci kullanımı bu seviyeyi aşarsa, "
+"hesaplamayı duraklatır."
msgctxt "prefs_cpu_time_max_header"
msgid "CPU limit"
@@ -655,6 +708,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Sıfırla"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -684,6 +749,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Sıfırla"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "Hesap yöneticisi tarafından istendi"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Bu proje sıfırlansın mı:"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -839,6 +918,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "Evet"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Projeler okunuyor..."
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1041,3 +1126,4 @@ msgstr ""
"\n"
"© 2003-2013 Kaliforniya Üniversitesi, Berkeley.\n"
"Tüm hakları saklıdır."
+
diff --git a/locale/uk/BOINC-Android.po b/locale/uk/BOINC-Android.po
index 1011fa0..c622815 100644
--- a/locale/uk/BOINC-Android.po
+++ b/locale/uk/BOINC-Android.po
@@ -1,24 +1,23 @@
-# Translations template for PROJECT.
+# Ukrainian translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: 2013-09-20 09:52+0000\n"
-"Last-Translator: Олег <pukish_oleg at ukr.net>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: uk\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-09-23 16:39+0000\n"
+"Last-Translator: Dead J. Dona <deadjdona at gmail.com>\n"
+"Language-Team: uk <LL at li.org>\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"
"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%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"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1379670743.0\n"
#. app global
msgctxt "app_name"
@@ -52,6 +51,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "Будь-ласка, введіть адресу (URL) проекту"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "На запит менеджера проектів"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "Відсутнє з’єднання з Інтернетом"
@@ -106,8 +110,8 @@ msgid ""
"By creating an account with this project, you accept the terms of use as "
"shown above."
msgstr ""
-"Створюючи обліковий запис у цьому проекті, Ви приймаєте умови використання, "
-"що викладені вище."
+"Створюючи обліковий запис у цьому проекті, Ви приймаєте умови "
+"використання, що викладені вище."
msgctxt "attachproject_login_category_login"
msgid "Sign in with existing account"
@@ -194,6 +198,34 @@ msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "Створити"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "На запит менеджера проектів"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Пароль:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Повторити:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -211,6 +243,11 @@ msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
msgstr "Паролі не збігаються"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Будь-ласка, введіть ім'я користувача"
+
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
msgstr "Будь ласка, вкажіть адресу електронної пошти"
@@ -251,6 +288,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "Можливість створення облікових записів в даному проекті відключена"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -296,6 +337,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "Увійти"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "На запит менеджера проектів"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -338,6 +388,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "Налаштування"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "Навігація"
@@ -422,7 +476,7 @@ msgstr "Живлення"
msgctxt "prefs_category_cpu"
msgid "CPU"
-msgstr "Процесор"
+msgstr "ЦП"
msgctxt "prefs_category_storage"
msgid "Storage"
@@ -461,8 +515,8 @@ msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
-"BOINC призупинить розрахунки, коли температура батареї перевищить вказаний "
-"рівень. Не рекомендовано змінювати це значення."
+"BOINC призупинить розрахунки, коли температура батареї перевищить "
+"вказаний рівень. Не рекомендовано змінювати це значення."
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
@@ -540,24 +594,24 @@ msgstr "Прапорці журналу клієнта BOINC"
msgctxt "prefs_gui_log_level_header"
msgid "GUI log level"
-msgstr ""
+msgstr "Рівень журналу GUI"
msgctxt "prefs_gui_log_level_description"
msgid "Specifies verbosity of GUI log messages."
-msgstr ""
+msgstr "Задає рівень деталізації повідомлень журналу GUI."
msgctxt "prefs_unit_mb"
msgid "MB"
-msgstr ""
+msgstr "Мб"
msgctxt "prefs_unit_gb"
msgid "GB"
-msgstr ""
+msgstr "Гб"
#, c-format
msgctxt "prefs_unit_pct"
msgid "%"
-msgstr ""
+msgstr "%"
msgctxt "prefs_unit_celcius"
msgid "°C"
@@ -603,28 +657,28 @@ msgstr "Проект завершений - Гаразд для видаленн
msgctxt "projects_status_detachwhendone"
msgid "Will remove when tasks done"
-msgstr ""
+msgstr "Буде видалено після завершення завдань"
msgctxt "projects_status_schedrpcpending"
msgid "Scheduler request pending"
-msgstr ""
+msgstr "Запит інформації у планувальника"
msgctxt "projects_status_schedrpcinprogress"
msgid "Scheduler request in progress"
-msgstr ""
+msgstr "Відбувається запит інформації у планувальника"
msgctxt "projects_status_trickleuppending"
msgid "Trickle up message pending"
-msgstr ""
+msgstr "Очікування проміжного відправлення"
msgctxt "projects_status_backoff"
msgid "Communication scheduled in:"
-msgstr ""
+msgstr "Зв’язок за розкладом:"
#. project controls
msgctxt "projects_control_dialog_title"
msgid "Project commands:"
-msgstr ""
+msgstr "Команди проекту:"
msgctxt "projects_control_update"
msgid "Update"
@@ -654,6 +708,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "Скинути"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -665,7 +731,7 @@ msgstr "Ви справді хочете видалити"
msgctxt "projects_confirm_detach_message2"
msgid "from BOINC?"
-msgstr ""
+msgstr "із BOINC?"
msgctxt "projects_confirm_detach_confirm"
msgid "Remove"
@@ -673,47 +739,58 @@ msgstr "Видалити"
msgctxt "projects_confirm_reset_title"
msgid "Reset project"
-msgstr ""
+msgstr "Перезапустити проект"
-#, fuzzy
msgctxt "projects_confirm_reset_message"
msgid "Are you sure you want to reset"
-msgstr "Ви справді хочете видалити"
+msgstr "Ви справді хочете перезапустити"
msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "Скинути"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "На запит менеджера проектів"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Ви справді хочете перезапустити"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
-msgstr ""
+msgstr "Назва завдання:"
msgctxt "tasks_header_elapsed_time"
msgid "Elapsed time:"
-msgstr ""
+msgstr "Витрачено часу:"
-#, fuzzy
msgctxt "tasks_header_project_paused"
msgid "(suspended)"
-msgstr "Призупинено"
+msgstr "(призупинено)"
msgctxt "tasks_header_deadline"
msgid "Deadline:"
-msgstr ""
+msgstr "Кінцевий термін:"
msgctxt "tasks_result_new"
msgid "new"
-msgstr ""
+msgstr "новий"
msgctxt "tasks_result_files_downloading"
msgid "waiting for download"
-msgstr ""
+msgstr "очікування завантаження"
-#, fuzzy
msgctxt "tasks_result_files_downloaded"
msgid "download complete"
-msgstr "відправлення завершене"
+msgstr "звантаження завершене"
msgctxt "tasks_result_compute_error"
msgid "computation error"
@@ -755,39 +832,38 @@ msgctxt "tasks_active_quit_pending"
msgid "suspending"
msgstr "призупинення"
-#, fuzzy
msgctxt "tasks_custom_suspended_via_gui"
msgid "suspended"
-msgstr "Призупинено"
+msgstr "призупинено"
msgctxt "tasks_custom_project_suspended_via_gui"
msgid "project suspended"
-msgstr ""
+msgstr "проект призупинено"
msgctxt "tasks_custom_ready_to_report"
msgid "ready to report"
-msgstr ""
+msgstr "готовий до звітування"
#. confirmation dialog
msgctxt "confirm_abort_task_title"
msgid "Abort task?"
-msgstr ""
+msgstr "Перервати завдання?"
msgctxt "confirm_abort_task_message"
msgid "Abort task:"
-msgstr ""
+msgstr "Перервати завдання:"
msgctxt "confirm_abort_task_confirm"
msgid "Abort"
-msgstr ""
+msgstr "Перервати"
msgctxt "confirm_cancel"
msgid "Cancel"
-msgstr ""
+msgstr "Скасувати"
msgctxt "confirm_image_desc"
msgid "Confirmation dialog"
-msgstr ""
+msgstr "Діалог підтвердження"
#. transfers tab strings
msgctxt "trans_loading"
@@ -832,41 +908,47 @@ msgstr "Файл:"
msgctxt "confirm_abort_trans_title"
msgid "Abort transfer?"
-msgstr ""
+msgstr "Перервати передачу?"
msgctxt "confirm_abort_trans_message"
msgid "Abort File:"
-msgstr ""
+msgstr "Перервати файл:"
msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
-msgstr ""
+msgstr "Перервати"
+
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Читання проектів..."
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
-msgstr ""
+msgstr "Завантаження повідомлень журналу..."
msgctxt "eventlog_client_header"
msgid "Client Messages"
-msgstr ""
+msgstr "Повідомлення клієнта"
msgctxt "eventlog_gui_header"
msgid "GUI Messages"
-msgstr ""
+msgstr "Повідомлення GUI"
msgctxt "eventlog_copy_toast"
msgid "Log copied to clipboard."
-msgstr ""
+msgstr "Журнал скопійований в буфер обміну."
msgctxt "eventlog_email_subject"
msgid "Event Log for BOINC on Android:"
-msgstr ""
+msgstr "Журнал подій для BOINC на Android:"
#. suspend reasons
msgctxt "suspend_unknown"
msgid "Computation suspended."
-msgstr ""
+msgstr "Обчислення призупинене."
msgctxt "suspend_batteries"
msgid "Connect your device to a charger to continue computing."
@@ -878,130 +960,129 @@ msgstr "Працює користувач."
msgctxt "suspend_tod"
msgid "Out of computation time-frame."
-msgstr ""
+msgstr "Закінчився час, виділений для обчислень."
msgctxt "suspend_bm"
msgid "BOINC is benchmarking your device…"
-msgstr ""
+msgstr "BOINC визначає продуктивність вашого пристрою..."
msgctxt "suspend_disksize"
msgid "Out of disk space."
-msgstr ""
+msgstr "Недостатньо місця на диску."
msgctxt "suspend_cputhrottle"
msgid "Scheduled CPU throttle."
-msgstr ""
+msgstr "Заплановане обмеження навантаження процесора."
msgctxt "suspend_noinput"
msgid "No recent user activity."
-msgstr ""
+msgstr "Останнім часом користувач неактивний."
msgctxt "suspend_delay"
msgid "Initialization delay."
-msgstr ""
+msgstr "Ініціалізація відкладена."
msgctxt "suspend_exclusiveapp"
msgid "An exclusive app is running."
-msgstr ""
+msgstr "Виконується привілейований додаток."
msgctxt "suspend_cpu"
msgid "Your device is busy with other apps."
-msgstr ""
+msgstr "Ваш пристрій зайнятий іншими додатками."
msgctxt "suspend_network_quota"
msgid "BOINC reached network transfer limit."
-msgstr ""
+msgstr "BOINC досяг межі передачі даних мережею."
msgctxt "suspend_os"
msgid "Stopped by Android."
-msgstr ""
+msgstr "Зупинено Android-ом."
msgctxt "suspend_wifi"
msgid "Not connected to WiFi."
-msgstr ""
+msgstr "Відсутнє підключення до WiFi."
msgctxt "suspend_battery_charging"
msgid "Battery needs to charge before resuming computation."
-msgstr ""
+msgstr "Необхідно зарядити батарею для продовження розрахунків."
msgctxt "suspend_battery_charging_long"
msgid "Computing will resume when battery charge reaches"
-msgstr ""
+msgstr "Розрахунки продовжаться, коли заряд батареї досягне"
msgctxt "suspend_battery_charging_current"
msgid "currently"
-msgstr ""
+msgstr "зараз"
msgctxt "suspend_battery_overheating"
msgid "Waiting for battery to cool down"
-msgstr ""
+msgstr "Очікування охолодження батареї"
msgctxt "suspend_user_req"
msgid "Resuming computation…"
-msgstr ""
+msgstr "Поновлення розрахунків..."
msgctxt "suspend_network_user_req"
msgid "manually."
-msgstr ""
+msgstr "вручну."
#. rpc reasons
msgctxt "rpcreason_userreq"
msgid "Requested by user"
-msgstr ""
+msgstr "На вимогу користувача"
msgctxt "rpcreason_needwork"
msgid "To fetch work"
-msgstr ""
+msgstr "Надіслати запит на завдання"
msgctxt "rpcreason_resultsdue"
msgid "To report completed tasks"
-msgstr ""
+msgstr "Повідомити про виконані завдання"
msgctxt "rpcreason_trickleup"
msgid "To send trickle-up message"
-msgstr ""
+msgstr "Надіслати проміжне повідомлення"
msgctxt "rpcreason_acctmgrreq"
msgid "Requested by account manager"
-msgstr ""
+msgstr "На запит менеджера проектів"
msgctxt "rpcreason_init"
msgid "Project initialization"
-msgstr ""
+msgstr "Ініціалізація проекту"
msgctxt "rpcreason_projectreq"
msgid "Requested by project"
-msgstr ""
+msgstr "На запит проекту"
msgctxt "rpcreason_unknown"
msgid "Unknown reason"
-msgstr ""
+msgstr "Невідома причина"
#. menu
msgctxt "menu_refresh"
msgid "Refresh"
-msgstr ""
+msgstr "Оновити"
msgctxt "menu_emailto"
msgid "Send as Email"
-msgstr ""
+msgstr "Надіслати електронною поштою"
msgctxt "menu_copy"
msgid "Copy to Clipboard"
-msgstr ""
+msgstr "Копіювати в буфер обміну"
msgctxt "menu_eventlog"
msgid "Event Log"
-msgstr ""
+msgstr "Журнал подій"
msgctxt "menu_exit"
msgid "Exit BOINC"
-msgstr ""
+msgstr "Вийти з BOINC"
-#, fuzzy
msgctxt "menu_run_mode_disable"
msgid "Suspend"
-msgstr "Призупинено"
+msgstr "Призупинити"
msgctxt "menu_run_mode_enable"
msgid "Resume"
@@ -1009,20 +1090,20 @@ msgstr "Відновити"
msgctxt "menu_about"
msgid "About"
-msgstr ""
+msgstr "Про"
msgctxt "menu_help"
msgid "Help"
-msgstr ""
+msgstr "Довідка"
#. about dialog
msgctxt "about_button"
msgid "Return"
-msgstr ""
+msgstr "Повернутися"
msgctxt "about_title"
msgid "About"
-msgstr ""
+msgstr "Про"
msgctxt "about_name"
msgid "BOINC"
@@ -1030,14 +1111,17 @@ msgstr "BOINC"
msgctxt "about_version"
msgid "Version"
-msgstr ""
+msgstr "Версія"
msgctxt "about_name_long"
msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr ""
+msgstr "Відкрита інфраструктура для розподілених обчислень університету Берклі"
msgctxt "about_copyright"
msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+"© 2003-2013 Університет Каліфорнії, Берклі.\n"
+"Всі права захищено."
+
diff --git a/locale/uk/BOINC-Manager.mo b/locale/uk/BOINC-Manager.mo
index e5d5305..05dc945 100644
Binary files a/locale/uk/BOINC-Manager.mo and b/locale/uk/BOINC-Manager.mo differ
diff --git a/locale/uk/BOINC-Manager.po b/locale/uk/BOINC-Manager.po
index eadb399..0b9782c 100644
--- a/locale/uk/BOINC-Manager.po
+++ b/locale/uk/BOINC-Manager.po
@@ -7,7 +7,7 @@ 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: 2013-08-08 19:05+0200\n"
+"PO-Revision-Date: 2013-09-23 17:59+0000\n"
"Last-Translator: Олег <pukish_oleg at ukr.net>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"Language: uk\n"
@@ -16,7 +16,7 @@ msgstr ""
"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.1.6\n"
+"X-Generator: Pootle 2.5.0\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-Basepath: C:\\Src\\BOINCGIT\\boinc\n"
"X-Poedit-SearchPath-0: clientgui\n"
@@ -24,6 +24,7 @@ msgstr ""
"X-Poedit-SearchPath-2: clientgui/gtk\n"
"X-Poedit-SearchPath-3: clientgui/mac\n"
"X-BOINC-UTF8-Marker: 简体中文, 日本語\n"
+"X-POOTLE-MTIME: 1379959161.0\n"
# 81%
#: clientgui/AccountInfoPage.cpp:387
@@ -882,7 +883,7 @@ msgstr "BOINC менеджер був автоматично запущений
#: clientgui/BOINCGUIApp.cpp:563
msgid "Startup BOINC so only the system tray icon is visible"
-msgstr "згортати BOINC менеджер в значок на панелі завдань під час запуску"
+msgstr "Згортати BOINC менеджер в значок на панелі завдань під час запуску"
#: clientgui/BOINCGUIApp.cpp:565
msgid "Directory containing the BOINC Client executable"
@@ -1476,12 +1477,12 @@ msgstr "Додатково, підтримувати достатньо завд
#: clientgui/DlgAdvPreferencesBase.cpp:465
msgid "Skip image file verification"
-msgstr "Пропустити перевірку файлів зображень"
+msgstr "Не перевіряти завантажувані файли"
#: clientgui/DlgAdvPreferencesBase.cpp:467
msgid "check this if your Internet provider modifies image files"
msgstr ""
-"виберіть цей пункт,якщо Ваш інтернет провайдер змінює файли, що "
+"виберіть цей пункт, якщо Ваш інтернет провайдер змінює файли, що "
"завантажуються"
#: clientgui/DlgAdvPreferencesBase.cpp:475
@@ -1507,7 +1508,7 @@ msgid ""
"if checked, BOINC hangs up when network usage is done\n"
"(only relevant for dialup-connection)"
msgstr ""
-"Якщо відмічено, після завершення мережевих передач BOINC розірве з’єднання\n"
+"якщо відмічено, після завершення мережевих передач BOINC розірве з’єднання\n"
"(стосується лише dialup-з’єднання)"
#: clientgui/DlgAdvPreferencesBase.cpp:491
@@ -1516,7 +1517,7 @@ msgstr "Дозволене використання мережі"
#: clientgui/DlgAdvPreferencesBase.cpp:499
msgid "network usage start hour"
-msgstr "Дозволити використання мережі, починаючи з"
+msgstr "дозволити використання мережі, починаючи з"
#: clientgui/DlgAdvPreferencesBase.cpp:507
msgid "network usage stop hour"
@@ -1675,7 +1676,7 @@ msgstr "&Закрити"
#: clientgui/DlgEventLog.cpp:331
#, c-format
msgid "Get help with %s"
-msgstr "Отримати довідку щодо S%"
+msgstr "Отримати довідку щодо %s"
#: clientgui/DlgEventLog.cpp:345
msgid "Show all &messages"
@@ -1783,7 +1784,7 @@ msgstr " інтервал затримки запиту завдань"
#: clientgui/DlgItemProperties.cpp:208
msgid "Properties of project "
-msgstr "Інформація про проект "
+msgstr "Властивості проекту "
#: clientgui/DlgItemProperties.cpp:212
#: clientgui/DlgOptions.cpp:218
@@ -1800,7 +1801,7 @@ msgstr "Ім'я користувача"
#: clientgui/DlgItemProperties.cpp:215
msgid "Team name"
-msgstr "Команда"
+msgstr "Назва команди"
#: clientgui/DlgItemProperties.cpp:216
msgid "Resource share"
@@ -1861,7 +1862,7 @@ msgstr "Очікування проміжного відправлення"
#: clientgui/DlgItemProperties.cpp:240
#: clientgui/DlgItemProperties.cpp:242
msgid "Host location"
-msgstr "Місцезнаходження комп’ютера"
+msgstr "Розміщення комп’ютера"
#: clientgui/DlgItemProperties.cpp:242
msgid "default"
@@ -2036,7 +2037,7 @@ msgstr "Підключення за замовчуванням:"
#: clientgui/DlgOptions.cpp:259
msgid "Connections"
-msgstr "Параметри з'єднання"
+msgstr "З'єднання"
#: clientgui/DlgOptions.cpp:268
msgid "Connect via HTTP proxy server"
@@ -2127,8 +2128,8 @@ msgstr "%s - зміна мови"
#, 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 було змінено,\n"
-"для вступу в силу змін потрібно перезапустити програму %s."
+"Мову інтерфейсу програми %s було змінено, для вступу в силу змін потрібно "
+"перезапустити %s."
#: clientgui/DlgSelectComputer.cpp:90
#, c-format
@@ -2142,7 +2143,7 @@ msgid ""
"on this computer. Please select a client to monitor."
msgstr ""
"Інший примірник %s вже працює \n"
-"на даному комп'ютері. Будь ласка, виберіть клієнт для моніторингу."
+"на даному комп'ютері. Будь-ласка, виберіть клієнт для моніторингу."
#: clientgui/DlgSelectComputer.cpp:142
msgid "Host name:"
@@ -2645,8 +2646,8 @@ msgstr "Вибір проекту"
#: clientgui/ProjectInfoPage.cpp:586
msgid "To choose a project, click its name or type its URL below."
msgstr ""
-"Оберіть проект, яктй Вам сподобався, натиснувши на його\n"
-"назві або введіть його адресу URL в полі ниже."
+"Оберіть проект, який Вам сподобався, натиснувши на його\n"
+"назву або введіть його адресу URL в полі ниже."
#: clientgui/ProjectInfoPage.cpp:590
msgid "Categories:"
@@ -4345,7 +4346,7 @@ msgstr "список проектів або менеджерів проекті
#: clientgui/mac/MacAccessiblity.cpp:1575
#, c-format
msgid "selected row %d of %d; "
-msgstr "вибраний рядок %d of %d; "
+msgstr "вибраний рядок %d із %d; "
#: clientgui/mac/MacAccessiblity.cpp:1577
#, c-format
diff --git a/locale/uk/BOINC-Project-Generic.po b/locale/uk/BOINC-Project-Generic.po
index 6e8164f..54fcc99 100644
--- a/locale/uk/BOINC-Project-Generic.po
+++ b/locale/uk/BOINC-Project-Generic.po
@@ -7,8 +7,8 @@ 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: 2013-06-08 22:30+0200\n"
-"Last-Translator: Олег <pukish_oleg at ukr.net>\n"
+"PO-Revision-Date: 2013-09-23 16:43+0000\n"
+"Last-Translator: Dead J. Dona <deadjdona at gmail.com>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
@@ -16,14 +16,15 @@ msgstr ""
"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.1.6\n"
+"X-Generator: Pootle 2.5.0\n"
"X-Poedit-SourceCharset: utf-8\n"
+"X-POOTLE-MTIME: 1379954636.0\n"
msgid "LANG_NAME_NATIVE"
-msgstr "English"
+msgstr "Українська"
msgid "LANG_NAME_INTERNATIONAL"
-msgstr "English"
+msgstr "Ukrainian"
#: ../inc/bbcode_html.inc:11
msgid "Bold text: [b]text[/b] (alt+b)"
@@ -194,22 +195,22 @@ msgstr "Розширений пошук"
#: ../inc/forum.inc:132 ../inc/user.inc:253 ../user/pm.php:69
#: ../user/pm.php:133
msgid "Private messages"
-msgstr "Особисті повідомлення"
+msgstr "Приватні повідомлення"
#: ../inc/forum.inc:151 ../user/forum_forum.php:71
#: ../user/sample_index.php:119
msgid "Questions and Answers"
-msgstr "Питання та Відповіді"
+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 "Дошка оголошень"
+msgstr "Форум"
#: ../inc/forum.inc:187 ../inc/forum.inc:195
msgid "%1 message board"
-msgstr "Дошка оголошень %1"
+msgstr "Форум %1"
#: ../inc/forum.inc:245 ../inc/result.inc:681
msgid "Previous"
@@ -2403,7 +2404,7 @@ msgstr ""
"Теги BBCode дозволяють Вам форматувати текст у своєму профілі\n"
"і у повідомленнях форуму. Вони схожі на HTML, тільки простіші. Теги "
"починаються\n"
-"із символу [ (замість %1у HTML) і закінчуються символом ] (замість %2 у "
+"із символу [ (замість %1 у HTML) і закінчуються символом ] (замість %2 у "
"HTML)."
#: ../user/bbcode.php:31
@@ -3566,7 +3567,7 @@ msgid ""
"administrators"
msgstr ""
"Цей проект не створив електронного листа - будь-ласка, повідомте про це "
-"адміністраторам"
+"адміністраторів."
#: ../user/ffmail_form.php:34
msgid "Tell your friends about %1"
diff --git a/locale/uk/BOINC-Setup.mo b/locale/uk/BOINC-Setup.mo
index 48ac35d..bcf3aea 100644
Binary files a/locale/uk/BOINC-Setup.mo and b/locale/uk/BOINC-Setup.mo differ
diff --git a/locale/uk/BOINC-Setup.po b/locale/uk/BOINC-Setup.po
index 6aad99c..18d8330 100644
--- a/locale/uk/BOINC-Setup.po
+++ b/locale/uk/BOINC-Setup.po
@@ -7,8 +7,8 @@ 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: 2013-08-08 19:07+0200\n"
-"Last-Translator: Олег <pukish_oleg at ukr.net>\n"
+"PO-Revision-Date: 2013-09-23 16:40+0000\n"
+"Last-Translator: Dead J. Dona <deadjdona at gmail.com>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
@@ -16,11 +16,12 @@ msgstr ""
"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: Poedit 1.5.5\n"
+"X-Generator: Pootle 2.5.0\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-Basepath: /Volumes/Cheer/BOINC_GIT/boinc_trunk\n"
"X-Poedit-SearchPath-0: mac_installer\n"
+"X-POOTLE-MTIME: 1379954457.0\n"
#: mac_installer/Installer.cpp:132
#, c-format
@@ -128,7 +129,9 @@ msgid ""
"Enter your administrator password to completely remove %s from you "
"computer.\n"
"\n"
-msgstr "Для повного видалення %s з Вашого комп’ютера введіть пароль адміністратора.\n"
+msgstr ""
+"Для повного видалення %s з Вашого комп’ютера введіть пароль адміністратора.\n"
+"\n"
#: mac_installer/uninstall.cpp:1543
msgid "Cancel"
diff --git a/locale/uk/BOINC-Web.mo b/locale/uk/BOINC-Web.mo
index 4c1f7c3..b27a975 100644
Binary files a/locale/uk/BOINC-Web.mo and b/locale/uk/BOINC-Web.mo differ
diff --git a/locale/uk/BOINC-Web.po b/locale/uk/BOINC-Web.po
index afb4aca..52e13a2 100644
--- a/locale/uk/BOINC-Web.po
+++ b/locale/uk/BOINC-Web.po
@@ -7,7 +7,7 @@ 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: 2013-09-16 18:40+0000\n"
+"PO-Revision-Date: 2013-09-23 10:29+0000\n"
"Last-Translator: Олег <pukish_oleg at ukr.net>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"Language: uk\n"
@@ -18,7 +18,7 @@ msgstr ""
"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-POOTLE-MTIME: 1379356810.0\n"
+"X-POOTLE-MTIME: 1379932174.0\n"
#: projects.inc:14
msgid "Distributed sensing"
@@ -149,7 +149,7 @@ msgstr "Університет Делавера"
#: projects.inc:88
msgid "Study of protein - ligand interactions"
-msgstr "Дослідження білків - взаємодії лігандів"
+msgstr "Дослідження білково-лігандних взаємодій"
#: projects.inc:89
msgid ""
@@ -902,7 +902,7 @@ msgstr "Обчислювальні потужності"
#: index.php:25
msgid "Top 100 volunteers"
-msgstr "100 кращих учасників"
+msgstr "100 найкращих учасників"
#: index.php:26
msgid "Statistics"
diff --git a/locale/zh_CN/BOINC-Android.po b/locale/zh_CN/BOINC-Android.po
index 3375b3e..0bfd46e 100644
--- a/locale/zh_CN/BOINC-Android.po
+++ b/locale/zh_CN/BOINC-Android.po
@@ -1,23 +1,20 @@
-# Translations template for PROJECT.
+# Chinese (China) translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
"PO-Revision-Date: 2013-09-21 09:50+0000\n"
"Last-Translator: Gang <zenith.yin at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: zh_CN\n"
+"Language-Team: zh_CN <LL at li.org>\n"
+"Plural-Forms: nplurals=1; plural=(0)\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=1; plural=0;\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1379757051.0\n"
#. app global
msgctxt "app_name"
@@ -25,990 +22,1166 @@ msgid "BOINC"
msgstr "BOINC"
#. generic. used by multiple Activities/tabs
+#, fuzzy
msgctxt "generic_loading"
msgid "Loading! Please wait…"
-msgstr "正在载入,请稍候。"
+msgstr "Завантаження! Зачекайте, будь-ласка..."
#. attach project
#. project list
+#, fuzzy
msgctxt "attachproject_list_header"
msgid "Choose a project:"
-msgstr "选择一个项目:"
+msgstr "Оберіть проект:"
+#, fuzzy
msgctxt "attachproject_list_manual_button"
msgid "Add project by URL"
-msgstr "通过网址(URL)添加项目:"
+msgstr "Додати проект за адресою (URL)"
+#, fuzzy
msgctxt "attachproject_list_manual_dialog_title"
msgid "Enter project URL:"
-msgstr "输入项目网址(URL):"
+msgstr "Введіть адресу (URL) проекту:"
+#, fuzzy
msgctxt "attachproject_list_manual_dialog_button"
msgid "Add project"
-msgstr "添加项目"
+msgstr "Додати проект"
+#, fuzzy
msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
-msgstr "请输入项目网址(URL)"
+msgstr "Будь-ласка, введіть адресу (URL) проекту"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "На запит менеджера проектів"
+
+#, fuzzy
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
-msgstr "无可用网络连接"
+msgstr "Відсутнє з’єднання з Інтернетом"
#. project login
+#, fuzzy
msgctxt "attachproject_login_loading"
msgid "Contacting project server…"
-msgstr "正在联系项目服务器..."
+msgstr "Встановлення з’єднання із сервером проекту"
+#, fuzzy
msgctxt "attachproject_login_image_description"
msgid "Project logo."
-msgstr "项目标志。"
+msgstr "Логотип проекту."
+#, fuzzy
msgctxt "attachproject_login_header_general_area"
msgid "General area:"
-msgstr "研究领域"
+msgstr "Загальна область:"
+#, fuzzy
msgctxt "attachproject_login_header_specific_area"
msgid "Specific area:"
-msgstr "细分领域:"
+msgstr "Спеціальна область:"
+#, fuzzy
msgctxt "attachproject_login_header_description"
msgid "Description:"
-msgstr "描述:"
+msgstr "Опис:"
+#, fuzzy
msgctxt "attachproject_login_header_home"
msgid "Home:"
-msgstr "项目 方:"
+msgstr "Домівка:"
+#, fuzzy
msgctxt "attachproject_login_header_url"
msgid "Website:"
-msgstr "网站:"
+msgstr "Веб-сайт:"
+#, fuzzy
msgctxt "attachproject_login_header_platform"
msgid "Android:"
-msgstr "Android:"
+msgstr "Android:"
+#, fuzzy
msgctxt "attachproject_login_platform_supported"
msgid "This project supports Android devices"
-msgstr "这个项目支持 Android 设备"
+msgstr "Цей проект підтримує пристрої, на базі Android"
+#, fuzzy
msgctxt "attachproject_login_platform_not_supported"
msgid "This project does not support Android devices"
-msgstr "这个项目不支持 Android 设备"
+msgstr "Цей проект не підтримує пристрої, на базі Android"
+#, fuzzy
msgctxt "attachproject_login_category_terms_of_use"
msgid "Terms of use for"
-msgstr "使用条款:"
+msgstr "Умови використання для"
+#, fuzzy
msgctxt "attachproject_login_accept_terms_of_use"
msgid ""
"By creating an account with this project, you accept the terms of use as "
"shown above."
-msgstr "一旦你在这个项目创建账号,则视为你同意上述使用条款。"
+msgstr ""
+"Створюючи обліковий запис у цьому проекті, Ви приймаєте умови "
+"використання, що викладені вище."
+#, fuzzy
msgctxt "attachproject_login_category_login"
msgid "Sign in with existing account"
-msgstr "使用已有账号登陆"
+msgstr "Увійти з існуючим обліковим записом"
+#, fuzzy
msgctxt "attachproject_login_header_id_email"
msgid "eMail:"
-msgstr "电子邮件地址:"
+msgstr "Електронна пошта:"
+#, fuzzy
msgctxt "attachproject_login_header_id_name"
msgid "Name:"
-msgstr "名称:"
+msgstr "Ім'я:"
+#, fuzzy
msgctxt "attachproject_login_header_pwd"
msgid "Password:"
-msgstr "密码:"
+msgstr "Пароль:"
+#, fuzzy
msgctxt "attachproject_login_category_creation"
msgid "New to"
-msgstr "新来"
+msgstr "Новий"
+#, fuzzy
msgctxt "attachproject_login_header_creation_enabled"
msgid "Register an account to participate:"
-msgstr "注册一个账号以参与:"
+msgstr "Зареєструвати обліковий запис для участі:"
+#, fuzzy
msgctxt "attachproject_login_header_creation_client_disabled"
msgid "Visit project website to create an account:"
-msgstr "访问项目网站来创建一个计算账户:"
+msgstr "Відвідати інтернет сторінку проекту для створення облікового запису:"
+#, fuzzy
msgctxt "attachproject_login_header_creation_disabled"
msgid "Project does currently now allow creation of new accounts!"
-msgstr "该项目当前不允许创建新的账户!"
+msgstr "Зараз у проекті можна створювати нові облікові записи!"
+#, fuzzy
msgctxt "attachproject_login_button_registration"
msgid "Register"
-msgstr "注册"
+msgstr "Зареєструватися"
+#, fuzzy
msgctxt "attachproject_login_button_login"
msgid "Sign in"
-msgstr "登录"
+msgstr "Увійти"
+#, fuzzy
msgctxt "attachproject_login_button_forgotpw"
msgid "Forgot Password"
-msgstr "忘记密码"
+msgstr "Забули пароль?"
+#, fuzzy
msgctxt "attachproject_login_error_toast"
msgid "Contacting project failed!"
-msgstr "无法连接项目!"
+msgstr "Не вдалося з’єднатися з проектом!"
+#, fuzzy
msgctxt "attachproject_login_attached"
msgid "Attached"
-msgstr "已添加"
+msgstr "Додано"
#. project registration
msgctxt "attachproject_registration_header"
msgid "Account registration for"
-msgstr ""
+msgstr "Реєстрація облікового запису для"
+#, fuzzy
msgctxt "attachproject_registration_header_url"
msgid "Project:"
-msgstr "项目:"
+msgstr "Проект:"
+#, fuzzy
msgctxt "attachproject_registration_header_email"
msgid "eMail:"
-msgstr "电子邮件:"
+msgstr "Електронна пошта:"
+#, fuzzy
msgctxt "attachproject_registration_header_username"
msgid "Name:"
-msgstr "名称:"
+msgstr "Ім'я:"
+#, fuzzy
msgctxt "attachproject_registration_header_teamname"
msgid "Team:"
-msgstr "团队:"
+msgstr "Команда:"
+#, fuzzy
msgctxt "attachproject_registration_header_pwd"
msgid "Password:"
-msgstr "密码:"
+msgstr "Пароль:"
msgctxt "attachproject_registration_header_pwd_confirm"
msgid "… Retype:"
-msgstr ""
+msgstr "… Повторити:"
+#, fuzzy
msgctxt "attachproject_registration_button"
msgid "Create"
-msgstr "创建"
+msgstr "Створити"
+
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "На запит менеджера проектів"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "Пароль:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… Повторити:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
#. error strings
+#, fuzzy
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
-msgstr "未找到用户"
+msgstr "Користувача не знайдено"
+#, fuzzy
msgctxt "attachproject_error_short_pwd"
msgid "Password too short"
-msgstr "密码太短"
+msgstr "Пароль надто короткий"
+#, fuzzy
msgctxt "attachproject_error_no_internet"
msgid "Connection failure"
-msgstr "连接失败"
+msgstr "Невдала спроба зв’язку"
+#, fuzzy
msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
-msgstr "密码不匹配"
+msgstr "Паролі не збігаються"
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "Будь-ласка, введіть ім'я користувача"
+
+#, fuzzy
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
-msgstr "请输入您的电子邮件地址"
+msgstr "Будь ласка, вкажіть адресу електронної пошти"
+#, fuzzy
msgctxt "attachproject_error_no_pwd"
msgid "Please enter a password"
-msgstr "请输入您的密码"
+msgstr "Будь-ласка, введіть пароль"
+#, fuzzy
msgctxt "attachproject_error_no_name"
msgid "Please enter user name"
-msgstr "请输入一个用户名"
+msgstr "Будь-ласка, введіть ім'я користувача"
+#, fuzzy
msgctxt "attachproject_error_unknown"
msgid "failed"
-msgstr "失败"
+msgstr "невдало"
+#, fuzzy
msgctxt "attachproject_error_bad_username"
msgid "User name refused"
-msgstr "用户名不符合要求"
+msgstr "Ім'я користувача відхилене"
+#, fuzzy
msgctxt "attachproject_error_email_in_use"
msgid "eMail is already in use"
-msgstr "电子邮件地址已经被使用"
+msgstr "Електронна адреса вже використовується"
+#, fuzzy
msgctxt "attachproject_error_project_down"
msgid "Project is offline"
-msgstr "项目离线"
+msgstr "Проект поза мережею"
+#, fuzzy
msgctxt "attachproject_error_email_bad_syntax"
msgid "eMail refused"
-msgstr "电子邮件地址不符合要求"
+msgstr "Адресу електронної пошти відхилено"
+#, fuzzy
msgctxt "attachproject_error_bad_pwd"
msgid "Password refused"
-msgstr "密码不符合要求"
+msgstr "Пароль відхилено"
+#, fuzzy
msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
-msgstr "该项目当前不允许创建新账户"
+msgstr "Можливість створення облікових записів в даному проекті відключена"
+
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
#. working activity
+#, fuzzy
msgctxt "attachproject_working_back_button"
msgid "Back"
-msgstr "返回"
+msgstr "Назад"
+#, fuzzy
msgctxt "attachproject_working_finish_button"
msgid "Finish"
-msgstr "完成"
+msgstr "Готово"
+#, fuzzy
msgctxt "attachproject_working_check_desc"
msgid "Successful"
-msgstr "成功"
+msgstr "Успішно"
+#, fuzzy
msgctxt "attachproject_working_failed_desc"
msgid "Failed"
-msgstr "失败"
+msgstr "Невдало"
msgctxt "attachproject_working_ongoing"
msgid "…"
-msgstr ""
+msgstr "..."
msgctxt "attachproject_working_finished"
msgid "."
-msgstr ""
+msgstr "."
msgctxt "attachproject_working_description"
msgid ":"
-msgstr ""
+msgstr ":"
+#, fuzzy
msgctxt "attachproject_working_connect"
msgid "Connect"
-msgstr "连接"
+msgstr "Підключитися"
+#, fuzzy
msgctxt "attachproject_working_verify"
msgid "Verify account"
-msgstr "账户验证"
+msgstr "Перевірити обліковий запис"
+#, fuzzy
msgctxt "attachproject_working_register"
msgid "Register account"
-msgstr "注册账户"
+msgstr "Зареєструвати обліковий запис"
+#, fuzzy
msgctxt "attachproject_working_login"
msgid "Log in"
-msgstr "登录"
+msgstr "Увійти"
+
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "На запит менеджера проектів"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
#. main activity
+#, fuzzy
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
-msgstr "点击此处来选择项目。"
+msgstr "Для обрання проекту натисніть тут."
+#, fuzzy
msgctxt "main_error"
msgid "Whooops"
-msgstr "出错咯"
+msgstr "Ой!"
msgctxt "main_error_long"
msgid ""
"…this should not happen!\n"
"Click on the icon to try again."
msgstr ""
+"…цього не повинно траплятися!\n"
+"Натисніть на іконці для повторної спроби."
+#, fuzzy
msgctxt "main_title_icon_desc"
msgid "BOINC icon"
-msgstr "BOINC 图标"
+msgstr "Іконка BOINC"
#. tab names
+#, fuzzy
msgctxt "tab_status"
msgid "Status"
-msgstr "状态"
+msgstr "Статус"
+#, fuzzy
msgctxt "tab_projects"
msgid "Projects"
-msgstr "项目"
+msgstr "Проекти"
+#, fuzzy
msgctxt "tab_tasks"
msgid "Tasks"
-msgstr "任务"
+msgstr "Завдання"
+#, fuzzy
msgctxt "tab_transfers"
msgid "Transfers"
-msgstr "传输"
+msgstr "Передачі"
+#, fuzzy
msgctxt "tab_preferences"
msgid "Preferences"
-msgstr "偏好设定"
+msgstr "Налаштування"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
+#, fuzzy
msgctxt "tab_desc"
msgid "Navigation"
-msgstr "导航"
+msgstr "Навігація"
#. status strings
+#, fuzzy
msgctxt "status_running"
msgid "Computing"
-msgstr "计算中"
+msgstr "Обчислення"
msgctxt "status_running_long"
msgid "Thank you for participating."
-msgstr ""
+msgstr "Дякуємо за участь."
msgctxt "status_paused"
msgid "Suspended"
-msgstr ""
+msgstr "Призупинено"
msgctxt "status_idle"
msgid "Nothing to do"
-msgstr ""
+msgstr "Нема роботи"
msgctxt "status_idle_long"
msgid "Waiting for tasks…"
-msgstr ""
+msgstr "Очікування завдань…"
msgctxt "status_computing_disabled"
msgid "Suspended"
-msgstr ""
+msgstr "Призупинено"
msgctxt "status_computing_disabled_long"
msgid "Press play to resume network and computation."
-msgstr ""
+msgstr "Натисніть кнопку Грати для відновлення мережі і обчислень."
+#, fuzzy
msgctxt "status_launching"
msgid "Starting…"
-msgstr "正在启动"
+msgstr "Запуск…"
+#, fuzzy
msgctxt "status_noproject"
msgid "Choose a project to participate in."
-msgstr "选择一个要参加的项目。"
+msgstr "Оберіть проект для прийняття участі в ньому."
+#, fuzzy
msgctxt "status_closing"
msgid "Closing…"
-msgstr "正在关闭..."
+msgstr "Закриття..."
+#, fuzzy
msgctxt "status_benchmarking"
msgid "Benchmarking…"
-msgstr "正在运行基准测试..."
+msgstr "Тестування..."
+#, fuzzy
msgctxt "status_image_description"
msgid "project image"
-msgstr "项目图像"
+msgstr "зображення проекту"
#. preferences tab strings
+#, fuzzy
msgctxt "prefs_loading"
msgid "Reading preferences…"
-msgstr "正在读取偏好设置..."
+msgstr "Читання налаштувань..."
+#, fuzzy
msgctxt "prefs_submit_button"
msgid "Save"
-msgstr "保存"
+msgstr "Зберегти"
+#, fuzzy
msgctxt "prefs_dialog_title"
msgid "Enter new value:"
-msgstr "输入新值:"
+msgstr "Ввести нове значення:"
+#, fuzzy
msgctxt "prefs_dialog_title_selection"
msgid "Select:"
-msgstr "选择:"
+msgstr "Вибрати:"
+#, fuzzy
msgctxt "prefs_category_general"
msgid "General"
-msgstr "常规"
+msgstr "Основні"
msgctxt "prefs_category_network"
msgid "Network"
-msgstr ""
+msgstr "Мережа"
msgctxt "prefs_category_power"
msgid "Power"
-msgstr ""
+msgstr "Живлення"
msgctxt "prefs_category_cpu"
msgid "CPU"
-msgstr ""
+msgstr "ЦП"
msgctxt "prefs_category_storage"
msgid "Storage"
-msgstr ""
+msgstr "Диск"
msgctxt "prefs_category_memory"
msgid "Memory"
-msgstr ""
+msgstr "Пам`ять"
msgctxt "prefs_category_debug"
msgid "Debug"
-msgstr ""
+msgstr "Діагностика"
msgctxt "prefs_show_advanced_header"
msgid "Show advanced preferences and controls…"
-msgstr ""
+msgstr "Показати додаткові налаштування і елементи керування..."
msgctxt "prefs_run_on_battery_header"
msgid "Compute on Battery"
-msgstr ""
+msgstr "Обчислювати на батареї"
msgctxt "battery_charge_min_pct_header"
msgid "Min. battery level"
-msgstr ""
+msgstr "Низький заряд батареї"
msgctxt "battery_charge_min_pct_description"
msgid "BOINC suspends computation below defined battery charge level."
-msgstr ""
+msgstr "BOINC призупиняє обчислення нижче визначеного рівня заряду акумулятора."
msgctxt "battery_temperature_max_header"
msgid "Max. battery temperature"
-msgstr ""
+msgstr "Макс. температура батареї"
msgctxt "battery_temperature_max_description"
msgid ""
"BOINC suspends computation above defined battery temperature. It is not "
"recommended to change this value."
msgstr ""
+"BOINC призупинить розрахунки, коли температура батареї перевищить "
+"вказаний рівень. Не рекомендовано змінювати це значення."
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
-msgstr ""
+msgstr "Макс. використаний об’єм диска"
msgctxt "prefs_disk_max_pct_description"
msgid "How many percent of your device's storage space is BOINC allowed to use?"
-msgstr ""
+msgstr "Скільки відсотків дискового простору може використовувати BOINC?"
msgctxt "prefs_disk_min_free_gb_header"
msgid "Min. spare storage"
-msgstr ""
+msgstr "Мін. запас дискового простору"
msgctxt "prefs_disk_min_free_gb_description"
msgid "How much of your device's storage space shall stay free?"
-msgstr ""
+msgstr "Скільки вашого дискового простору повинно залишитися вільним?"
msgctxt "prefs_network_daily_xfer_limit_mb_header"
msgid "Daily transfer limit"
-msgstr ""
+msgstr "Денний ліміт передачі"
msgctxt "prefs_network_daily_xfer_limit_mb_description"
msgid "Limits the daily data traffic caused by BOINC."
-msgstr ""
+msgstr "Обмеження щоденної передачі даних, що здійснює BOINC."
msgctxt "prefs_network_wifi_only_header"
msgid "Transfer tasks on WiFi only"
-msgstr ""
+msgstr "Передавати завдання тільки через WiFi"
msgctxt "prefs_autostart_header"
msgid "Autostart"
-msgstr ""
+msgstr "Автозапуск"
msgctxt "prefs_show_notification_header"
msgid "Show notification when suspended"
-msgstr ""
+msgstr "Показати повідомлення коли призупинено"
msgctxt "prefs_cpu_number_cpus_header"
msgid "Used CPU cores"
-msgstr ""
+msgstr "Використано ядер ЦП"
msgctxt "prefs_cpu_number_cpus_description"
msgid "Limits the number of CPU cores BOINC uses for computation."
-msgstr ""
+msgstr "Обмежує кількість ядер ЦП, які BOINC використовує для обчислень."
msgctxt "prefs_cpu_other_load_suspension_header"
msgid "Pause at CPU usage above"
-msgstr ""
+msgstr "Використання ЦП призупинене"
msgctxt "prefs_cpu_other_load_suspension_description"
msgid "Determines when BOINC pauses computation due to other app's CPU usage."
msgstr ""
+"Визначає коли призупиняти обчислення BOINC через використання ЦП іншими "
+"додатками."
msgctxt "prefs_cpu_time_max_header"
msgid "CPU limit"
-msgstr ""
+msgstr "Обмеження ЦП"
msgctxt "prefs_cpu_time_max_description"
msgid "Limits the CPU time BOINC uses for computation."
-msgstr ""
+msgstr "Обмежує процесорний час роботи, який BOINC використовує для обчислень."
msgctxt "prefs_memory_max_idle_header"
msgid "RAM limit"
-msgstr ""
+msgstr "обмеження RAM"
msgctxt "prefs_memory_max_idle_description"
msgid "Limits the amount of RAM tasks are allowed to occupy."
-msgstr ""
+msgstr "Обмеження кількості RAM, доступної для використання."
msgctxt "prefs_client_log_flags_header"
msgid "BOINC Client log flags"
-msgstr ""
+msgstr "Прапорці журналу клієнта BOINC"
msgctxt "prefs_gui_log_level_header"
msgid "GUI log level"
-msgstr ""
+msgstr "Рівень журналу GUI"
msgctxt "prefs_gui_log_level_description"
msgid "Specifies verbosity of GUI log messages."
-msgstr ""
+msgstr "Задає рівень деталізації повідомлень журналу GUI."
msgctxt "prefs_unit_mb"
msgid "MB"
-msgstr ""
+msgstr "Мб"
msgctxt "prefs_unit_gb"
msgid "GB"
-msgstr ""
+msgstr "Гб"
#, c-format
msgctxt "prefs_unit_pct"
msgid "%"
-msgstr ""
+msgstr "%"
msgctxt "prefs_unit_celcius"
msgid "°C"
-msgstr ""
+msgstr "°C"
#. projects tab strings
msgctxt "projects_loading"
msgid "Reading projects…"
-msgstr ""
+msgstr "Читання проектів..."
+#, fuzzy
msgctxt "projects_add"
msgid "Add project"
-msgstr "添加项目"
+msgstr "Додати проект"
msgctxt "projects_icon"
msgid "Project icon"
-msgstr ""
+msgstr "Значок проекту"
msgctxt "projects_credits_header"
msgid "Credit:"
-msgstr ""
+msgstr "Бали:"
msgctxt "projects_credits_host_header"
msgid "(on this device)"
-msgstr ""
+msgstr "(на цьому пристрої)"
msgctxt "projects_credits_user_header"
msgid "(total)"
-msgstr ""
+msgstr "(загалом)"
#. project status strings
msgctxt "projects_status_suspendedviagui"
msgid "Suspended by user"
-msgstr ""
+msgstr "Призупинено користувачем"
msgctxt "projects_status_dontrequestmorework"
msgid "Won't get new tasks"
-msgstr ""
+msgstr "Не приймає нові завдання"
msgctxt "projects_status_ended"
msgid "Project ended - OK to remove"
-msgstr ""
+msgstr "Проект завершений - Гаразд для видалення"
msgctxt "projects_status_detachwhendone"
msgid "Will remove when tasks done"
-msgstr ""
+msgstr "Буде видалено після завершення завдань"
msgctxt "projects_status_schedrpcpending"
msgid "Scheduler request pending"
-msgstr ""
+msgstr "Запит інформації у планувальника"
msgctxt "projects_status_schedrpcinprogress"
msgid "Scheduler request in progress"
-msgstr ""
+msgstr "Відбувається запит інформації у планувальника"
msgctxt "projects_status_trickleuppending"
msgid "Trickle up message pending"
-msgstr ""
+msgstr "Очікування проміжного відправлення"
msgctxt "projects_status_backoff"
msgid "Communication scheduled in:"
-msgstr ""
+msgstr "Зв’язок за розкладом:"
#. project controls
msgctxt "projects_control_dialog_title"
msgid "Project commands:"
-msgstr ""
+msgstr "Команди проекту:"
msgctxt "projects_control_update"
msgid "Update"
-msgstr ""
+msgstr "Оновити"
msgctxt "projects_control_remove"
msgid "Remove"
-msgstr ""
+msgstr "Видалити"
msgctxt "projects_control_suspend"
msgid "Suspend"
-msgstr ""
+msgstr "Призупинено"
msgctxt "projects_control_resume"
msgid "Resume"
-msgstr ""
+msgstr "Відновити"
msgctxt "projects_control_nonewtasks"
msgid "No new tasks"
-msgstr ""
+msgstr "Не завантажувати нові завдання"
msgctxt "projects_control_allownewtasks"
msgid "Allow new tasks"
-msgstr ""
+msgstr "Отримувати нові завдання"
msgctxt "projects_control_reset"
msgid "Reset"
+msgstr "Скинути"
+
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
msgstr ""
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
-msgstr ""
+msgstr "Видалити проект?"
msgctxt "projects_confirm_detach_message"
msgid "Are you sure you want to remove"
-msgstr ""
+msgstr "Ви справді хочете видалити"
msgctxt "projects_confirm_detach_message2"
msgid "from BOINC?"
-msgstr ""
+msgstr "із BOINC?"
msgctxt "projects_confirm_detach_confirm"
msgid "Remove"
-msgstr ""
+msgstr "Видалити"
msgctxt "projects_confirm_reset_title"
msgid "Reset project"
-msgstr ""
+msgstr "Перезапустити проект"
msgctxt "projects_confirm_reset_message"
msgid "Are you sure you want to reset"
-msgstr ""
+msgstr "Ви справді хочете перезапустити"
msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
+msgstr "Скинути"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "На запит менеджера проектів"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "Ви справді хочете перезапустити"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
msgstr ""
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
-msgstr ""
+msgstr "Назва завдання:"
msgctxt "tasks_header_elapsed_time"
msgid "Elapsed time:"
-msgstr ""
+msgstr "Витрачено часу:"
msgctxt "tasks_header_project_paused"
msgid "(suspended)"
-msgstr ""
+msgstr "(призупинено)"
msgctxt "tasks_header_deadline"
msgid "Deadline:"
-msgstr ""
+msgstr "Кінцевий термін:"
msgctxt "tasks_result_new"
msgid "new"
-msgstr ""
+msgstr "новий"
msgctxt "tasks_result_files_downloading"
msgid "waiting for download"
-msgstr ""
+msgstr "очікування завантаження"
msgctxt "tasks_result_files_downloaded"
msgid "download complete"
-msgstr ""
+msgstr "звантаження завершене"
msgctxt "tasks_result_compute_error"
msgid "computation error"
-msgstr ""
+msgstr "помилка обчислень"
msgctxt "tasks_result_files_uploading"
msgid "uploading"
-msgstr ""
+msgstr "Відправлення"
msgctxt "tasks_result_files_uploaded"
msgid "upload complete"
-msgstr ""
+msgstr "відправлення завершене"
msgctxt "tasks_result_aborted"
msgid "aborted"
-msgstr ""
+msgstr "перервано"
msgctxt "tasks_result_upload_failed"
msgid "upload failed"
-msgstr ""
+msgstr "невдала спроба відправлення"
msgctxt "tasks_active_uninitialized"
msgid "ready"
-msgstr ""
+msgstr "готово"
msgctxt "tasks_active_executing"
msgid "running"
-msgstr ""
+msgstr "працює"
msgctxt "tasks_active_suspended"
msgid "suspended"
-msgstr ""
+msgstr "призупинено"
msgctxt "tasks_active_abort_pending"
msgid "suspending"
-msgstr ""
+msgstr "призупинення"
msgctxt "tasks_active_quit_pending"
msgid "suspending"
-msgstr ""
+msgstr "призупинення"
msgctxt "tasks_custom_suspended_via_gui"
msgid "suspended"
-msgstr ""
+msgstr "призупинено"
msgctxt "tasks_custom_project_suspended_via_gui"
msgid "project suspended"
-msgstr ""
+msgstr "проект призупинено"
msgctxt "tasks_custom_ready_to_report"
msgid "ready to report"
-msgstr ""
+msgstr "готовий до звітування"
#. confirmation dialog
msgctxt "confirm_abort_task_title"
msgid "Abort task?"
-msgstr ""
+msgstr "Перервати завдання?"
msgctxt "confirm_abort_task_message"
msgid "Abort task:"
-msgstr ""
+msgstr "Перервати завдання:"
msgctxt "confirm_abort_task_confirm"
msgid "Abort"
-msgstr ""
+msgstr "Перервати"
msgctxt "confirm_cancel"
msgid "Cancel"
-msgstr ""
+msgstr "Скасувати"
msgctxt "confirm_image_desc"
msgid "Confirmation dialog"
-msgstr ""
+msgstr "Діалог підтвердження"
#. transfers tab strings
msgctxt "trans_loading"
msgid "Reading transfers…"
-msgstr ""
+msgstr "Читання передач..."
msgctxt "trans_upload"
msgid "Upload"
-msgstr ""
+msgstr "Відправлення"
msgctxt "trans_download"
msgid "Download"
-msgstr ""
+msgstr "Завантаження"
msgctxt "trans_retryin"
msgid "retry in"
-msgstr ""
+msgstr "повтор через"
msgctxt "trans_failed"
msgid "failed"
-msgstr ""
+msgstr "невдало"
msgctxt "trans_suspended"
msgid "suspended"
-msgstr ""
+msgstr "призупинено"
msgctxt "trans_active"
msgid "active"
-msgstr ""
+msgstr "активна"
msgctxt "trans_pending"
msgid "pending"
-msgstr ""
+msgstr "в очікуванні"
msgctxt "trans_projectbackoff"
msgid "project backoff"
-msgstr ""
+msgstr "запит до проекту відкладено на"
msgctxt "trans_header_name"
msgid "File:"
-msgstr ""
+msgstr "Файл:"
msgctxt "confirm_abort_trans_title"
msgid "Abort transfer?"
-msgstr ""
+msgstr "Перервати передачу?"
msgctxt "confirm_abort_trans_message"
msgid "Abort File:"
-msgstr ""
+msgstr "Перервати файл:"
msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
-msgstr ""
+msgstr "Перервати"
+
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "Читання проектів..."
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
-msgstr ""
+msgstr "Завантаження повідомлень журналу..."
msgctxt "eventlog_client_header"
msgid "Client Messages"
-msgstr ""
+msgstr "Повідомлення клієнта"
msgctxt "eventlog_gui_header"
msgid "GUI Messages"
-msgstr ""
+msgstr "Повідомлення GUI"
msgctxt "eventlog_copy_toast"
msgid "Log copied to clipboard."
-msgstr ""
+msgstr "Журнал скопійований в буфер обміну."
msgctxt "eventlog_email_subject"
msgid "Event Log for BOINC on Android:"
-msgstr ""
+msgstr "Журнал подій для BOINC на Android:"
#. suspend reasons
msgctxt "suspend_unknown"
msgid "Computation suspended."
-msgstr ""
+msgstr "Обчислення призупинене."
msgctxt "suspend_batteries"
msgid "Connect your device to a charger to continue computing."
-msgstr ""
+msgstr "Підключіть свій пристрій до зарядного для продовження розрахунків."
msgctxt "suspend_useractive"
msgid "User is active."
-msgstr ""
+msgstr "Працює користувач."
msgctxt "suspend_tod"
msgid "Out of computation time-frame."
-msgstr ""
+msgstr "Закінчився час, виділений для обчислень."
msgctxt "suspend_bm"
msgid "BOINC is benchmarking your device…"
-msgstr ""
+msgstr "BOINC визначає продуктивність вашого пристрою..."
msgctxt "suspend_disksize"
msgid "Out of disk space."
-msgstr ""
+msgstr "Недостатньо місця на диску."
msgctxt "suspend_cputhrottle"
msgid "Scheduled CPU throttle."
-msgstr ""
+msgstr "Заплановане обмеження навантаження процесора."
msgctxt "suspend_noinput"
msgid "No recent user activity."
-msgstr ""
+msgstr "Останнім часом користувач неактивний."
msgctxt "suspend_delay"
msgid "Initialization delay."
-msgstr ""
+msgstr "Ініціалізація відкладена."
msgctxt "suspend_exclusiveapp"
msgid "An exclusive app is running."
-msgstr ""
+msgstr "Виконується привілейований додаток."
msgctxt "suspend_cpu"
msgid "Your device is busy with other apps."
-msgstr ""
+msgstr "Ваш пристрій зайнятий іншими додатками."
msgctxt "suspend_network_quota"
msgid "BOINC reached network transfer limit."
-msgstr ""
+msgstr "BOINC досяг межі передачі даних мережею."
msgctxt "suspend_os"
msgid "Stopped by Android."
-msgstr ""
+msgstr "Зупинено Android-ом."
msgctxt "suspend_wifi"
msgid "Not connected to WiFi."
-msgstr ""
+msgstr "Відсутнє підключення до WiFi."
msgctxt "suspend_battery_charging"
msgid "Battery needs to charge before resuming computation."
-msgstr ""
+msgstr "Необхідно зарядити батарею для продовження розрахунків."
msgctxt "suspend_battery_charging_long"
msgid "Computing will resume when battery charge reaches"
-msgstr ""
+msgstr "Розрахунки продовжаться, коли заряд батареї досягне"
msgctxt "suspend_battery_charging_current"
msgid "currently"
-msgstr ""
+msgstr "зараз"
msgctxt "suspend_battery_overheating"
msgid "Waiting for battery to cool down"
-msgstr ""
+msgstr "Очікування охолодження батареї"
msgctxt "suspend_user_req"
msgid "Resuming computation…"
-msgstr ""
+msgstr "Поновлення розрахунків..."
msgctxt "suspend_network_user_req"
msgid "manually."
-msgstr ""
+msgstr "вручну."
#. rpc reasons
msgctxt "rpcreason_userreq"
msgid "Requested by user"
-msgstr ""
+msgstr "На вимогу користувача"
msgctxt "rpcreason_needwork"
msgid "To fetch work"
-msgstr ""
+msgstr "Надіслати запит на завдання"
msgctxt "rpcreason_resultsdue"
msgid "To report completed tasks"
-msgstr ""
+msgstr "Повідомити про виконані завдання"
msgctxt "rpcreason_trickleup"
msgid "To send trickle-up message"
-msgstr ""
+msgstr "Надіслати проміжне повідомлення"
msgctxt "rpcreason_acctmgrreq"
msgid "Requested by account manager"
-msgstr ""
+msgstr "На запит менеджера проектів"
msgctxt "rpcreason_init"
msgid "Project initialization"
-msgstr ""
+msgstr "Ініціалізація проекту"
msgctxt "rpcreason_projectreq"
msgid "Requested by project"
-msgstr ""
+msgstr "На запит проекту"
msgctxt "rpcreason_unknown"
msgid "Unknown reason"
-msgstr ""
+msgstr "Невідома причина"
#. menu
msgctxt "menu_refresh"
msgid "Refresh"
-msgstr ""
+msgstr "Оновити"
msgctxt "menu_emailto"
msgid "Send as Email"
-msgstr ""
+msgstr "Надіслати електронною поштою"
msgctxt "menu_copy"
msgid "Copy to Clipboard"
-msgstr ""
+msgstr "Копіювати в буфер обміну"
msgctxt "menu_eventlog"
msgid "Event Log"
-msgstr ""
+msgstr "Журнал подій"
msgctxt "menu_exit"
msgid "Exit BOINC"
-msgstr ""
+msgstr "Вийти з BOINC"
msgctxt "menu_run_mode_disable"
msgid "Suspend"
-msgstr ""
+msgstr "Призупинити"
msgctxt "menu_run_mode_enable"
msgid "Resume"
-msgstr ""
+msgstr "Відновити"
msgctxt "menu_about"
msgid "About"
-msgstr ""
+msgstr "Про"
msgctxt "menu_help"
msgid "Help"
-msgstr ""
+msgstr "Довідка"
#. about dialog
msgctxt "about_button"
msgid "Return"
-msgstr ""
+msgstr "Повернутися"
msgctxt "about_title"
msgid "About"
-msgstr ""
+msgstr "Про"
msgctxt "about_name"
msgid "BOINC"
@@ -1016,14 +1189,17 @@ msgstr "BOINC"
msgctxt "about_version"
msgid "Version"
-msgstr ""
+msgstr "Версія"
msgctxt "about_name_long"
msgid "Berkeley Open Infrastructure for Network Computing"
-msgstr ""
+msgstr "Відкрита інфраструктура для розподілених обчислень університету Берклі"
msgctxt "about_copyright"
msgid ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
msgstr ""
+"© 2003-2013 Університет Каліфорнії, Берклі.\n"
+"Всі права захищено."
+
diff --git a/locale/zh_CN/BOINC-Setup.mo b/locale/zh_CN/BOINC-Setup.mo
index c267b47..0c91df3 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 4e5dab8..32c9ed6 100644
--- a/locale/zh_CN/BOINC-Setup.po
+++ b/locale/zh_CN/BOINC-Setup.po
@@ -15,7 +15,7 @@ msgstr ""
"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"
+"X-Generator: Poedit 1.5.5\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-Basepath: /Volumes/Cheer/BOINC_GIT/boinc_trunk\n"
diff --git a/locale/zh_TW/BOINC-Android.po b/locale/zh_TW/BOINC-Android.po
index d906146..bda3ec5 100644
--- a/locale/zh_TW/BOINC-Android.po
+++ b/locale/zh_TW/BOINC-Android.po
@@ -1,23 +1,20 @@
-# Translations template for PROJECT.
+# Chinese (Taiwan) translations for PACKAGE.
# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the PACKAGE project.
# FIRST AUTHOR <EMAIL at ADDRESS>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n"
-"POT-Creation-Date: 2013-08-29 15:37-0700\n"
-"PO-Revision-Date: 2013-09-17 15:02+0000\n"
+"POT-Creation-Date: 2013-10-10 12:00-0700\n"
+"PO-Revision-Date: 2013-09-24 11:21+0000\n"
"Last-Translator: 宇謙 <df910105 at yahoo.com.tw>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: zh_TW\n"
+"Language-Team: zh_TW <LL at li.org>\n"
+"Plural-Forms: nplurals=1; plural=(0)\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=1; plural=0;\n"
-"X-Generator: Pootle 2.5.0\n"
"Generated-By: Babel 1.0dev\n"
-"X-POOTLE-MTIME: 1379430136.0\n"
#. app global
msgctxt "app_name"
@@ -51,6 +48,11 @@ msgctxt "attachproject_list_manual_no_url"
msgid "Please enter project URL"
msgstr "請輸入專案網址"
+#, fuzzy
+msgctxt "attachproject_list_acctmgr_button"
+msgid "Add account manager"
+msgstr "來自帳號管理員的請求"
+
msgctxt "attachproject_list_no_internet"
msgid "No Internet connection"
msgstr "沒有網路連線"
@@ -62,7 +64,7 @@ msgstr "正連線到專案伺服器..."
msgctxt "attachproject_login_image_description"
msgid "Project logo."
-msgstr "專案標誌"
+msgstr "專案標誌。"
msgctxt "attachproject_login_header_general_area"
msgid "General area:"
@@ -185,12 +187,40 @@ msgstr "密碼:"
msgctxt "attachproject_registration_header_pwd_confirm"
msgid "… Retype:"
-msgstr "…再次輸入:"
+msgstr "… 再次輸入:"
msgctxt "attachproject_registration_button"
msgid "Create"
msgstr "建立"
+#. account manager
+#, fuzzy
+msgctxt "attachproject_acctmgr_header"
+msgid "Add account manager"
+msgstr "來自帳號管理員的請求"
+
+msgctxt "attachproject_acctmgr_header_url"
+msgid "URL"
+msgstr ""
+
+msgctxt "attachproject_acctmgr_header_name"
+msgid "User:"
+msgstr ""
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd"
+msgid "Password:"
+msgstr "密碼:"
+
+#, fuzzy
+msgctxt "attachproject_acctmgr_header_pwd_confirm"
+msgid "… Retype:"
+msgstr "… 再次輸入:"
+
+msgctxt "attachproject_acctmgr_button"
+msgid "Add"
+msgstr ""
+
#. error strings
msgctxt "attachproject_error_wrong_name"
msgid "User not found"
@@ -206,7 +236,12 @@ msgstr "連線失敗"
msgctxt "attachproject_error_pwd_no_match"
msgid "Passwords do not match"
-msgstr "密碼不符"
+msgstr "與密碼不符"
+
+#, fuzzy
+msgctxt "attachproject_error_no_url"
+msgid "Please enter URL"
+msgstr "請輸入用戶名稱"
msgctxt "attachproject_error_no_email"
msgid "Please enter eMail address"
@@ -248,6 +283,10 @@ msgctxt "attachproject_error_creation_disabled"
msgid "Account creation is disabled on this project"
msgstr "此專案已停用註冊功能"
+msgctxt "attachproject_error_invalid_url"
+msgid "Invalid URL"
+msgstr ""
+
#. working activity
msgctxt "attachproject_working_back_button"
msgid "Back"
@@ -255,7 +294,7 @@ msgstr "返回"
msgctxt "attachproject_working_finish_button"
msgid "Finish"
-msgstr "結束"
+msgstr "完成"
msgctxt "attachproject_working_check_desc"
msgid "Successful"
@@ -283,7 +322,7 @@ msgstr "聯繫"
msgctxt "attachproject_working_verify"
msgid "Verify account"
-msgstr "確認帳號"
+msgstr "驗證帳號"
msgctxt "attachproject_working_register"
msgid "Register account"
@@ -293,6 +332,15 @@ msgctxt "attachproject_working_login"
msgid "Log in"
msgstr "登入"
+#, fuzzy
+msgctxt "attachproject_working_acctmgr"
+msgid "Add account manager"
+msgstr "來自帳號管理員的請求"
+
+msgctxt "attachproject_working_acctmgr_sync"
+msgid "Synchronize"
+msgstr ""
+
#. main activity
msgctxt "main_noproject_warning"
msgid "Tab here to choose a project."
@@ -335,6 +383,10 @@ msgctxt "tab_preferences"
msgid "Preferences"
msgstr "偏好設定"
+msgctxt "tab_notices"
+msgid "Notices"
+msgstr ""
+
msgctxt "tab_desc"
msgid "Navigation"
msgstr "導航"
@@ -395,7 +447,7 @@ msgstr "正在讀取偏好設定..."
msgctxt "prefs_submit_button"
msgid "Save"
-msgstr "存檔"
+msgstr "儲存"
msgctxt "prefs_dialog_title"
msgid "Enter new value:"
@@ -435,11 +487,11 @@ msgstr "偵錯"
msgctxt "prefs_show_advanced_header"
msgid "Show advanced preferences and controls…"
-msgstr "顯示進階的偏好及設定..."
+msgstr "顯示進階的偏好設定..."
msgctxt "prefs_run_on_battery_header"
msgid "Compute on Battery"
-msgstr "用電池來運算"
+msgstr "使用電池運算"
msgctxt "battery_charge_min_pct_header"
msgid "Min. battery level"
@@ -461,7 +513,7 @@ msgstr "BOINC 當電池溫度高於預設值時暫停運算。不建議變更此
msgctxt "prefs_disk_max_pct_header"
msgid "Max. used storage space"
-msgstr "最多能使用儲存空間"
+msgstr "最多使用容量"
msgctxt "prefs_disk_max_pct_description"
msgid "How many percent of your device's storage space is BOINC allowed to use?"
@@ -469,7 +521,7 @@ msgstr "BOINC 能使用多少比例的儲存空間?"
msgctxt "prefs_disk_min_free_gb_header"
msgid "Min. spare storage"
-msgstr "最小備用空間"
+msgstr "最小備用容量"
msgctxt "prefs_disk_min_free_gb_description"
msgid "How much of your device's storage space shall stay free?"
@@ -647,6 +699,18 @@ msgctxt "projects_control_reset"
msgid "Reset"
msgstr "重置"
+msgctxt "projects_control_dialog_title_acctmgr"
+msgid "Account manager commands:"
+msgstr ""
+
+msgctxt "projects_control_sync_acctmgr"
+msgid "Synchronize"
+msgstr ""
+
+msgctxt "projects_control_remove_acctmgr"
+msgid "Disable"
+msgstr ""
+
#. project confirm dialog
msgctxt "projects_confirm_detach_title"
msgid "Remove project?"
@@ -676,6 +740,20 @@ msgctxt "projects_confirm_reset_confirm"
msgid "Reset"
msgstr "重置"
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_title"
+msgid "Disable account manager"
+msgstr "來自帳號管理員的請求"
+
+#, fuzzy
+msgctxt "projects_confirm_remove_acctmgr_message"
+msgid "Are you sure you want to stop using"
+msgstr "您確定要重置"
+
+msgctxt "projects_confirm_remove_acctmgr_confirm"
+msgid "Disable"
+msgstr ""
+
#. tasks tab strings
msgctxt "tasks_header_name"
msgid "Task Name:"
@@ -687,7 +765,7 @@ msgstr "執行時間:"
msgctxt "tasks_header_project_paused"
msgid "(suspended)"
-msgstr "(已暫停)"
+msgstr "(暫停)"
msgctxt "tasks_header_deadline"
msgid "Deadline:"
@@ -764,7 +842,7 @@ msgstr "放棄任務?"
msgctxt "confirm_abort_task_message"
msgid "Abort task:"
-msgstr "停止任務:"
+msgstr "放棄任務:"
msgctxt "confirm_abort_task_confirm"
msgid "Abort"
@@ -831,6 +909,12 @@ msgctxt "confirm_abort_trans_confirm"
msgid "Abort"
msgstr "停止"
+#. notices tab strings
+#, fuzzy
+msgctxt "notices_loading"
+msgid "Reading notices…"
+msgstr "正在讀取專案…"
+
#. eventlog tab strings
msgctxt "eventlog_loading"
msgid "Loading log messages…"
@@ -1031,3 +1115,4 @@ msgid ""
msgstr ""
"© 2003–2013 University of California, Berkeley.\n"
"All Rights Reserved."
+
diff --git a/samples/glut/Roman.stroke b/samples/glut/Roman.stroke
new file mode 100644
index 0000000..b67b55f
--- /dev/null
+++ b/samples/glut/Roman.stroke
@@ -0,0 +1,604 @@
+##
+# $XConsortium: Roman.src,v 5.2 91/07/21 16:42:23 rws Exp $
+##
+## Copyright (c) 1989,1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
+##
+## All Rights Reserved
+##
+## Permission to use, copy, modify, and distribute this software and its
+## documentation for any purpose and without fee is hereby granted,
+## provided that the above copyright notice appear in all copies and that
+## both that copyright notice and this permission notice appear in
+## supporting documentation, and that the names of Sun Microsystems,
+## the X Consortium, and MIT not be used in advertising or publicity
+## pertaining to distribution of the software without specific, written
+## prior permission.
+##
+## SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+## EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+## CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+## USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+## OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+## PERFORMANCE OF THIS SOFTWARE.
+
+# Roman Simplex font.
+
+ FONTNAME Roman
+ TOP 119.0476
+ BOTTOM -33.3333
+ NUM_CH 128
+ PROPERTIES 3
+
+ (CHARSET_REGISTRY ISO8859)
+ (CHARSET_ENCODING "1")
+ (SPACING P)
+
+INDEX 32 STROKE 0 CENTER 52.3810 RIGHT 104.7619
+INDEX 33 STROKE 2 CENTER 4.7619 RIGHT 9.5238
+ OPEN 2 (4.7619 100.0000) (4.7619 33.3333)
+ OPEN 5 (4.7619 9.5238) (0.0000 4.7619) (4.7619 0.0000)
+ (9.5238 4.7619) (4.7619 9.5238)
+INDEX 34 STROKE 2 CENTER 19.0476 RIGHT 38.0952
+ OPEN 2 (0.0000 100.0000) (0.0000 66.6667)
+ OPEN 2 (38.0952 100.0000) (38.0952 66.6667)
+INDEX 35 STROKE 4 CENTER 33.3333 RIGHT 71.4286
+ OPEN 2 (38.0952 119.0476) (4.7619 -33.3333)
+ OPEN 2 (66.6667 119.0476) (33.3333 -33.3333)
+ OPEN 2 (4.7619 57.1429) (71.4286 57.1429)
+ OPEN 2 (0.0000 28.5714) (66.6667 28.5714)
+INDEX 36 STROKE 3 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (23.8095 119.0476) (23.8095 -19.0476)
+ OPEN 2 (42.8571 119.0476) (42.8571 -19.0476)
+ OPEN 20 (66.6667 85.7143) (57.1429 95.2381) (42.8571 100.0000)
+ (23.8095 100.0000) (9.5238 95.2381) (0.0000 85.7143) (0.0000 76.1905)
+ (4.7619 66.6667) (9.5238 61.9048) (19.0476 57.1429) (47.6190 47.6190)
+ (57.1429 42.8571) (61.9048 38.0952) (66.6667 28.5714) (66.6667 14.2857)
+ (57.1429 4.7619) (42.8571 0.0000) (23.8095 0.0000) (9.5238 4.7619)
+ (0.0000 14.2857)
+INDEX 37 STROKE 3 CENTER 42.8571 RIGHT 85.7143
+ OPEN 2 (85.7143 100.0000) (0.0000 0.0000)
+ OPEN 16 (23.8095 100.0000) (33.3333 90.4762) (33.3333 80.9524)
+ (28.5714 71.4286) (19.0476 66.6667) (9.5238 66.6667) (0.0000 76.1905)
+ (0.0000 85.7143) (4.7619 95.2381) (14.2857 100.0000) (23.8095 100.0000)
+ (33.3333 95.2381) (47.6190 90.4762) (61.9048 90.4762) (76.1905 95.2381)
+ (85.7143 100.0000)
+ OPEN 11 (66.6667 33.3333) (57.1429 28.5714) (52.3810 19.0476)
+ (52.3810 9.5238) (61.9048 0.0000) (71.4286 0.0000) (80.9524 4.7619)
+ (85.7143 14.2857) (85.7143 23.8095) (76.1905 33.3333) (66.6667 33.3333)
+INDEX 38 STROKE 1 CENTER 47.6190 RIGHT 95.2381
+ OPEN 34 (95.2381 57.1429) (95.2381 61.9048) (90.4762 66.6667)
+ (85.7143 66.6667) (80.9524 61.9048) (76.1905 52.3810) (66.6667 28.5714)
+ (57.1429 14.2857) (47.6190 4.7619) (38.0952 0.0000) (19.0476 0.0000)
+ (9.5238 4.7619) (4.7619 9.5238) (0.0000 19.0476) (0.0000 28.5714)
+ (4.7619 38.0952) (9.5238 42.8571) (42.8571 61.9048) (47.6190 66.6667)
+ (52.3810 76.1905) (52.3810 85.7143) (47.6190 95.2381) (38.0952 100.0000)
+ (28.5714 95.2381) (23.8095 85.7143) (23.8095 76.1905) (28.5714 61.9048)
+ (38.0952 47.6190) (61.9048 14.2857) (71.4286 4.7619) (80.9524 0.0000)
+ (90.4762 0.0000) (95.2381 4.7619) (95.2381 9.5238)
+INDEX 39 STROKE 1 CENTER 0.0000 RIGHT 0.0000
+ OPEN 2 (0.0000 100.0000) (0.0000 66.6667)
+INDEX 40 STROKE 1 CENTER 14.2857 RIGHT 33.3333
+ OPEN 10 (33.3333 119.0476) (23.8095 109.5238) (14.2857 95.2381)
+ (4.7619 76.1905) (0.0000 52.3810) (0.0000 33.3333) (4.7619 9.5238)
+ (14.2857 -9.5238) (23.8095 -23.8095) (33.3333 -33.3333)
+INDEX 41 STROKE 1 CENTER 19.0476 RIGHT 33.3333
+ OPEN 10 (0.0000 119.0476) (9.5238 109.5238) (19.0476 95.2381)
+ (28.5714 76.1905) (33.3333 52.3810) (33.3333 33.3333) (28.5714 9.5238)
+ (19.0476 -9.5238) (9.5238 -23.8095) (0.0000 -33.3333)
+INDEX 42 STROKE 3 CENTER 23.8095 RIGHT 47.6190
+ OPEN 2 (23.8095 71.4286) (23.8095 14.2857)
+ OPEN 2 (0.0000 57.1429) (47.6190 28.5714)
+ OPEN 2 (47.6190 57.1429) (0.0000 28.5714)
+INDEX 43 STROKE 2 CENTER 42.8571 RIGHT 85.7143
+ OPEN 2 (42.8571 85.7143) (42.8571 0.0000)
+ OPEN 2 (0.0000 42.8571) (85.7143 42.8571)
+INDEX 44 STROKE 1 CENTER 4.7619 RIGHT 9.5238
+ OPEN 8 (9.5238 4.7619) (4.7619 0.0000) (0.0000 4.7619)
+ (4.7619 9.5238) (9.5238 4.7619) (9.5238 -4.7619) (4.7619 -14.2857)
+ (0.0000 -19.0476)
+INDEX 45 STROKE 1 CENTER 42.8571 RIGHT 85.7143
+ OPEN 2 (0.0000 42.8571) (85.7143 42.8571)
+INDEX 46 STROKE 1 CENTER 4.7619 RIGHT 9.5238
+ OPEN 5 (4.7619 9.5238) (0.0000 4.7619) (4.7619 0.0000)
+ (9.5238 4.7619) (4.7619 9.5238)
+INDEX 47 STROKE 1 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 -14.2857) (66.6667 100.0000)
+INDEX 48 STROKE 1 CENTER 33.3333 RIGHT 66.6667
+ OPEN 17 (28.5714 100.0000) (14.2857 95.2381) (4.7619 80.9524)
+ (0.0000 57.1429) (0.0000 42.8571) (4.7619 19.0476) (14.2857 4.7619)
+ (28.5714 0.0000) (38.0952 0.0000) (52.3810 4.7619) (61.9048 19.0476)
+ (66.6667 42.8571) (66.6667 57.1429) (61.9048 80.9524) (52.3810 95.2381)
+ (38.0952 100.0000) (28.5714 100.0000)
+INDEX 49 STROKE 1 CENTER 19.0476 RIGHT 23.8095
+ OPEN 4 (0.0000 80.9524) (9.5238 85.7143) (23.8095 100.0000)
+ (23.8095 0.0000)
+INDEX 50 STROKE 1 CENTER 33.3333 RIGHT 66.6667
+ OPEN 14 (4.7619 76.1905) (4.7619 80.9524) (9.5238 90.4762)
+ (14.2857 95.2381) (23.8095 100.0000) (42.8571 100.0000) (52.3810 95.2381)
+ (57.1429 90.4762) (61.9048 80.9524) (61.9048 71.4286) (57.1429 61.9048)
+ (47.6190 47.6190) (0.0000 0.0000) (66.6667 0.0000)
+INDEX 51 STROKE 1 CENTER 33.3333 RIGHT 66.6667
+ OPEN 15 (9.5238 100.0000) (61.9048 100.0000) (33.3333 61.9048)
+ (47.6190 61.9048) (57.1429 57.1429) (61.9048 52.3810) (66.6667 38.0952)
+ (66.6667 28.5714) (61.9048 14.2857) (52.3810 4.7619) (38.0952 0.0000)
+ (23.8095 0.0000) (9.5238 4.7619) (4.7619 9.5238) (0.0000 19.0476)
+INDEX 52 STROKE 2 CENTER 33.3333 RIGHT 71.4286
+ OPEN 3 (47.6190 100.0000) (0.0000 33.3333) (71.4286 33.3333)
+ OPEN 2 (47.6190 100.0000) (47.6190 0.0000)
+INDEX 53 STROKE 1 CENTER 33.3333 RIGHT 66.6667
+ OPEN 17 (57.1429 100.0000) (9.5238 100.0000) (4.7619 57.1429)
+ (9.5238 61.9048) (23.8095 66.6667) (38.0952 66.6667) (52.3810 61.9048)
+ (61.9048 52.3810) (66.6667 38.0952) (66.6667 28.5714) (61.9048 14.2857)
+ (52.3810 4.7619) (38.0952 0.0000) (23.8095 0.0000) (9.5238 4.7619)
+ (4.7619 9.5238) (0.0000 19.0476)
+INDEX 54 STROKE 1 CENTER 28.5714 RIGHT 61.9048
+ OPEN 23 (57.1429 85.7143) (52.3810 95.2381) (38.0952 100.0000)
+ (28.5714 100.0000) (14.2857 95.2381) (4.7619 80.9524) (0.0000 57.1429)
+ (0.0000 33.3333) (4.7619 14.2857) (14.2857 4.7619) (28.5714 0.0000)
+ (33.3333 0.0000) (47.6190 4.7619) (57.1429 14.2857) (61.9048 28.5714)
+ (61.9048 33.3333) (57.1429 47.6190) (47.6190 57.1429) (33.3333 61.9048)
+ (28.5714 61.9048) (14.2857 57.1429) (4.7619 47.6190) (0.0000 33.3333)
+INDEX 55 STROKE 2 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (66.6667 100.0000) (19.0476 0.0000)
+ OPEN 2 (0.0000 100.0000) (66.6667 100.0000)
+INDEX 56 STROKE 1 CENTER 33.3333 RIGHT 66.6667
+ OPEN 29 (23.8095 100.0000) (9.5238 95.2381) (4.7619 85.7143)
+ (4.7619 76.1905) (9.5238 66.6667) (19.0476 61.9048) (38.0952 57.1429)
+ (52.3810 52.3810) (61.9048 42.8571) (66.6667 33.3333) (66.6667 19.0476)
+ (61.9048 9.5238) (57.1429 4.7619) (42.8571 0.0000) (23.8095 0.0000)
+ (9.5238 4.7619) (4.7619 9.5238) (0.0000 19.0476) (0.0000 33.3333)
+ (4.7619 42.8571) (14.2857 52.3810) (28.5714 57.1429) (47.6190 61.9048)
+ (57.1429 66.6667) (61.9048 76.1905) (61.9048 85.7143) (57.1429 95.2381)
+ (42.8571 100.0000) (23.8095 100.0000)
+INDEX 57 STROKE 1 CENTER 33.3333 RIGHT 61.9048
+ OPEN 23 (61.9048 66.6667) (57.1429 52.3810) (47.6190 42.8571)
+ (33.3333 38.0952) (28.5714 38.0952) (14.2857 42.8571) (4.7619 52.3810)
+ (0.0000 66.6667) (0.0000 71.4286) (4.7619 85.7143) (14.2857 95.2381)
+ (28.5714 100.0000) (33.3333 100.0000) (47.6190 95.2381) (57.1429 85.7143)
+ (61.9048 66.6667) (61.9048 42.8571) (57.1429 19.0476) (47.6190 4.7619)
+ (33.3333 0.0000) (23.8095 0.0000) (9.5238 4.7619) (4.7619 14.2857)
+INDEX 58 STROKE 2 CENTER 4.7619 RIGHT 9.5238
+ OPEN 5 (4.7619 66.6667) (0.0000 61.9048) (4.7619 57.1429)
+ (9.5238 61.9048) (4.7619 66.6667)
+ OPEN 5 (4.7619 9.5238) (0.0000 4.7619) (4.7619 0.0000)
+ (9.5238 4.7619) (4.7619 9.5238)
+INDEX 59 STROKE 2 CENTER 4.7619 RIGHT 9.5238
+ OPEN 5 (4.7619 66.6667) (0.0000 61.9048) (4.7619 57.1429)
+ (9.5238 61.9048) (4.7619 66.6667)
+ OPEN 8 (9.5238 4.7619) (4.7619 0.0000) (0.0000 4.7619)
+ (4.7619 9.5238) (9.5238 4.7619) (9.5238 -4.7619) (4.7619 -14.2857)
+ (0.0000 -19.0476)
+INDEX 60 STROKE 1 CENTER 38.0952 RIGHT 76.1905
+ OPEN 3 (76.1905 85.7143) (0.0000 42.8571) (76.1905 0.0000)
+INDEX 61 STROKE 2 CENTER 42.8571 RIGHT 85.7143
+ OPEN 2 (0.0000 57.1429) (85.7143 57.1429)
+ OPEN 2 (0.0000 28.5714) (85.7143 28.5714)
+INDEX 62 STROKE 1 CENTER 38.0952 RIGHT 76.1905
+ OPEN 3 (0.0000 85.7143) (76.1905 42.8571) (0.0000 0.0000)
+INDEX 63 STROKE 2 CENTER 28.5714 RIGHT 57.1429
+ OPEN 14 (0.0000 76.1905) (0.0000 80.9524) (4.7619 90.4762)
+ (9.5238 95.2381) (19.0476 100.0000) (38.0952 100.0000) (47.6190 95.2381)
+ (52.3810 90.4762) (57.1429 80.9524) (57.1429 71.4286) (52.3810 61.9048)
+ (47.6190 57.1429) (28.5714 47.6190) (28.5714 33.3333)
+ OPEN 5 (28.5714 9.5238) (23.8095 4.7619) (28.5714 0.0000)
+ (33.3333 4.7619) (28.5714 9.5238)
+INDEX 64 STROKE 2 CENTER 28.5714 RIGHT 61.9048
+ OPEN 8 (42.8571 52.3810) (33.3333 57.1429) (23.8095 57.1429)
+ (19.0476 47.6190) (19.0476 42.8571) (23.8095 33.3333) (33.3333 33.3333)
+ (42.8571 38.0952)
+ OPEN 19 (42.8571 57.1429) (42.8571 38.0952) (47.6190 33.3333)
+ (57.1429 33.3333) (61.9048 42.8571) (61.9048 47.6190) (57.1429 61.9048)
+ (47.6190 71.4286) (33.3333 76.1905) (28.5714 76.1905) (14.2857 71.4286)
+ (4.7619 61.9048) (0.0000 47.6190) (0.0000 42.8571) (4.7619 28.5714)
+ (14.2857 19.0476) (28.5714 14.2857) (33.3333 14.2857) (47.6190 19.0476)
+INDEX 65 STROKE 3 CENTER 38.0952 RIGHT 76.1905
+ OPEN 2 (38.0952 100.0000) (0.0000 0.0000)
+ OPEN 2 (38.0952 100.0000) (76.1905 0.0000)
+ OPEN 2 (14.2857 33.3333) (61.9048 33.3333)
+INDEX 66 STROKE 3 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 9 (0.0000 100.0000) (42.8571 100.0000) (57.1429 95.2381)
+ (61.9048 90.4762) (66.6667 80.9524) (66.6667 71.4286) (61.9048 61.9048)
+ (57.1429 57.1429) (42.8571 52.3810)
+ OPEN 10 (0.0000 52.3810) (42.8571 52.3810) (57.1429 47.6190)
+ (61.9048 42.8571) (66.6667 33.3333) (66.6667 19.0476) (61.9048 9.5238)
+ (57.1429 4.7619) (42.8571 0.0000) (0.0000 0.0000)
+INDEX 67 STROKE 1 CENTER 33.3333 RIGHT 71.4286
+ OPEN 18 (71.4286 76.1905) (66.6667 85.7143) (57.1429 95.2381)
+ (47.6190 100.0000) (28.5714 100.0000) (19.0476 95.2381) (9.5238 85.7143)
+ (4.7619 76.1905) (0.0000 61.9048) (0.0000 38.0952) (4.7619 23.8095)
+ (9.5238 14.2857) (19.0476 4.7619) (28.5714 0.0000) (47.6190 0.0000)
+ (57.1429 4.7619) (66.6667 14.2857) (71.4286 23.8095)
+INDEX 68 STROKE 2 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 12 (0.0000 100.0000) (33.3333 100.0000) (47.6190 95.2381)
+ (57.1429 85.7143) (61.9048 76.1905) (66.6667 61.9048) (66.6667 38.0952)
+ (61.9048 23.8095) (57.1429 14.2857) (47.6190 4.7619) (33.3333 0.0000)
+ (0.0000 0.0000)
+INDEX 69 STROKE 4 CENTER 28.5714 RIGHT 61.9048
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 2 (0.0000 100.0000) (61.9048 100.0000)
+ OPEN 2 (0.0000 52.3810) (38.0952 52.3810)
+ OPEN 2 (0.0000 0.0000) (61.9048 0.0000)
+INDEX 70 STROKE 3 CENTER 28.5714 RIGHT 61.9048
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 2 (0.0000 100.0000) (61.9048 100.0000)
+ OPEN 2 (0.0000 52.3810) (38.0952 52.3810)
+INDEX 71 STROKE 2 CENTER 33.3333 RIGHT 71.4286
+ OPEN 19 (71.4286 76.1905) (66.6667 85.7143) (57.1429 95.2381)
+ (47.6190 100.0000) (28.5714 100.0000) (19.0476 95.2381) (9.5238 85.7143)
+ (4.7619 76.1905) (0.0000 61.9048) (0.0000 38.0952) (4.7619 23.8095)
+ (9.5238 14.2857) (19.0476 4.7619) (28.5714 0.0000) (47.6190 0.0000)
+ (57.1429 4.7619) (66.6667 14.2857) (71.4286 23.8095) (71.4286 38.0952)
+ OPEN 2 (47.6190 38.0952) (71.4286 38.0952)
+INDEX 72 STROKE 3 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 2 (66.6667 100.0000) (66.6667 0.0000)
+ OPEN 2 (0.0000 52.3810) (66.6667 52.3810)
+INDEX 73 STROKE 1 CENTER 0.0000 RIGHT 0.0000
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+INDEX 74 STROKE 1 CENTER 28.5714 RIGHT 47.6190
+ OPEN 10 (47.6190 100.0000) (47.6190 23.8095) (42.8571 9.5238)
+ (38.0952 4.7619) (28.5714 0.0000) (19.0476 0.0000) (9.5238 4.7619)
+ (4.7619 9.5238) (0.0000 23.8095) (0.0000 33.3333)
+INDEX 75 STROKE 3 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 2 (66.6667 100.0000) (0.0000 33.3333)
+ OPEN 2 (23.8095 57.1429) (66.6667 0.0000)
+INDEX 76 STROKE 2 CENTER 28.5714 RIGHT 57.1429
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 2 (0.0000 0.0000) (57.1429 0.0000)
+INDEX 77 STROKE 4 CENTER 38.0952 RIGHT 76.1905
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 2 (0.0000 100.0000) (38.0952 0.0000)
+ OPEN 2 (76.1905 100.0000) (38.0952 0.0000)
+ OPEN 2 (76.1905 100.0000) (76.1905 0.0000)
+INDEX 78 STROKE 3 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 2 (0.0000 100.0000) (66.6667 0.0000)
+ OPEN 2 (66.6667 100.0000) (66.6667 0.0000)
+INDEX 79 STROKE 1 CENTER 38.0952 RIGHT 76.1905
+ OPEN 21 (28.5714 100.0000) (19.0476 95.2381) (9.5238 85.7143)
+ (4.7619 76.1905) (0.0000 61.9048) (0.0000 38.0952) (4.7619 23.8095)
+ (9.5238 14.2857) (19.0476 4.7619) (28.5714 0.0000) (47.6190 0.0000)
+ (57.1429 4.7619) (66.6667 14.2857) (71.4286 23.8095) (76.1905 38.0952)
+ (76.1905 61.9048) (71.4286 76.1905) (66.6667 85.7143) (57.1429 95.2381)
+ (47.6190 100.0000) (28.5714 100.0000)
+INDEX 80 STROKE 2 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 10 (0.0000 100.0000) (42.8571 100.0000) (57.1429 95.2381)
+ (61.9048 90.4762) (66.6667 80.9524) (66.6667 66.6667) (61.9048 57.1429)
+ (57.1429 52.3810) (42.8571 47.6190) (0.0000 47.6190)
+INDEX 81 STROKE 2 CENTER 38.0952 RIGHT 76.1905
+ OPEN 21 (28.5714 100.0000) (19.0476 95.2381) (9.5238 85.7143)
+ (4.7619 76.1905) (0.0000 61.9048) (0.0000 38.0952) (4.7619 23.8095)
+ (9.5238 14.2857) (19.0476 4.7619) (28.5714 0.0000) (47.6190 0.0000)
+ (57.1429 4.7619) (66.6667 14.2857) (71.4286 23.8095) (76.1905 38.0952)
+ (76.1905 61.9048) (71.4286 76.1905) (66.6667 85.7143) (57.1429 95.2381)
+ (47.6190 100.0000) (28.5714 100.0000)
+ OPEN 2 (42.8571 19.0476) (71.4286 -9.5238)
+INDEX 82 STROKE 3 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 10 (0.0000 100.0000) (42.8571 100.0000) (57.1429 95.2381)
+ (61.9048 90.4762) (66.6667 80.9524) (66.6667 71.4286) (61.9048 61.9048)
+ (57.1429 57.1429) (42.8571 52.3810) (0.0000 52.3810)
+ OPEN 2 (33.3333 52.3810) (66.6667 0.0000)
+INDEX 83 STROKE 1 CENTER 33.3333 RIGHT 66.6667
+ OPEN 20 (66.6667 85.7143) (57.1429 95.2381) (42.8571 100.0000)
+ (23.8095 100.0000) (9.5238 95.2381) (0.0000 85.7143) (0.0000 76.1905)
+ (4.7619 66.6667) (9.5238 61.9048) (19.0476 57.1429) (47.6190 47.6190)
+ (57.1429 42.8571) (61.9048 38.0952) (66.6667 28.5714) (66.6667 14.2857)
+ (57.1429 4.7619) (42.8571 0.0000) (23.8095 0.0000) (9.5238 4.7619)
+ (0.0000 14.2857)
+INDEX 84 STROKE 2 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (33.3333 100.0000) (33.3333 0.0000)
+ OPEN 2 (0.0000 100.0000) (66.6667 100.0000)
+INDEX 85 STROKE 1 CENTER 33.3333 RIGHT 66.6667
+ OPEN 10 (0.0000 100.0000) (0.0000 28.5714) (4.7619 14.2857)
+ (14.2857 4.7619) (28.5714 0.0000) (38.0952 0.0000) (52.3810 4.7619)
+ (61.9048 14.2857) (66.6667 28.5714) (66.6667 100.0000)
+INDEX 86 STROKE 2 CENTER 38.0952 RIGHT 76.1905
+ OPEN 2 (0.0000 100.0000) (38.0952 0.0000)
+ OPEN 2 (76.1905 100.0000) (38.0952 0.0000)
+INDEX 87 STROKE 4 CENTER 47.6190 RIGHT 95.2381
+ OPEN 2 (0.0000 100.0000) (23.8095 0.0000)
+ OPEN 2 (47.6190 100.0000) (23.8095 0.0000)
+ OPEN 2 (47.6190 100.0000) (71.4286 0.0000)
+ OPEN 2 (95.2381 100.0000) (71.4286 0.0000)
+INDEX 88 STROKE 2 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 100.0000) (66.6667 0.0000)
+ OPEN 2 (66.6667 100.0000) (0.0000 0.0000)
+INDEX 89 STROKE 2 CENTER 38.0952 RIGHT 76.1905
+ OPEN 3 (0.0000 100.0000) (38.0952 52.3810) (38.0952 0.0000)
+ OPEN 2 (76.1905 100.0000) (38.0952 52.3810)
+INDEX 90 STROKE 3 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (66.6667 100.0000) (0.0000 0.0000)
+ OPEN 2 (0.0000 100.0000) (66.6667 100.0000)
+ OPEN 2 (0.0000 0.0000) (66.6667 0.0000)
+INDEX 91 STROKE 4 CENTER 14.2857 RIGHT 33.3333
+ OPEN 2 (0.0000 119.0476) (0.0000 -33.3333)
+ OPEN 2 (4.7619 119.0476) (4.7619 -33.3333)
+ OPEN 2 (0.0000 119.0476) (33.3333 119.0476)
+ OPEN 2 (0.0000 -33.3333) (33.3333 -33.3333)
+INDEX 92 STROKE 1 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (0.0000 100.0000) (66.6667 -14.2857)
+INDEX 93 STROKE 4 CENTER 19.0476 RIGHT 33.3333
+ OPEN 2 (28.5714 119.0476) (28.5714 -33.3333)
+ OPEN 2 (33.3333 119.0476) (33.3333 -33.3333)
+ OPEN 2 (0.0000 119.0476) (33.3333 119.0476)
+ OPEN 2 (0.0000 -33.3333) (33.3333 -33.3333)
+INDEX 94 STROKE 2 CENTER 38.0952 RIGHT 76.1905
+ OPEN 2 (38.0952 109.5238) (0.0000 42.8571)
+ OPEN 2 (38.0952 109.5238) (76.1905 42.8571)
+INDEX 95 STROKE 1 CENTER 52.3810 RIGHT 104.7619
+ OPEN 5 (0.0000 -33.3333) (104.7619 -33.3333) (104.7619 -28.5714)
+ (0.0000 -28.5714) (0.0000 -33.3333)
+INDEX 96 STROKE 2 CENTER 14.2857 RIGHT 28.5714
+ OPEN 2 (4.7619 100.0000) (28.5714 71.4286)
+ OPEN 3 (4.7619 100.0000) (0.0000 95.2381) (28.5714 71.4286)
+INDEX 97 STROKE 2 CENTER 28.5714 RIGHT 57.1429
+ OPEN 2 (57.1429 66.6667) (57.1429 0.0000)
+ OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
+ (23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
+ (0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
+ (38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
+INDEX 98 STROKE 2 CENTER 28.5714 RIGHT 57.1429
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 14 (0.0000 52.3810) (9.5238 61.9048) (19.0476 66.6667)
+ (33.3333 66.6667) (42.8571 61.9048) (52.3810 52.3810) (57.1429 38.0952)
+ (57.1429 28.5714) (52.3810 14.2857) (42.8571 4.7619) (33.3333 0.0000)
+ (19.0476 0.0000) (9.5238 4.7619) (0.0000 14.2857)
+INDEX 99 STROKE 1 CENTER 28.5714 RIGHT 57.1429
+ OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
+ (23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
+ (0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
+ (38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
+INDEX 100 STROKE 2 CENTER 28.5714 RIGHT 57.1429
+ OPEN 2 (57.1429 100.0000) (57.1429 0.0000)
+ OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
+ (23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
+ (0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
+ (38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
+INDEX 101 STROKE 1 CENTER 28.5714 RIGHT 57.1429
+ OPEN 17 (0.0000 38.0952) (57.1429 38.0952) (57.1429 47.6190)
+ (52.3810 57.1429) (47.6190 61.9048) (38.0952 66.6667) (23.8095 66.6667)
+ (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952) (0.0000 28.5714)
+ (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000) (38.0952 0.0000)
+ (47.6190 4.7619) (57.1429 14.2857)
+INDEX 102 STROKE 2 CENTER 14.2857 RIGHT 38.0952
+ OPEN 5 (38.0952 100.0000) (28.5714 100.0000) (19.0476 95.2381)
+ (14.2857 80.9524) (14.2857 0.0000)
+ OPEN 2 (0.0000 66.6667) (33.3333 66.6667)
+INDEX 103 STROKE 2 CENTER 28.5714 RIGHT 57.1429
+ OPEN 7 (57.1429 66.6667) (57.1429 -9.5238) (52.3810 -23.8095)
+ (47.6190 -28.5714) (38.0952 -33.3333) (23.8095 -33.3333) (14.2857 -28.5714)
+ OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
+ (23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
+ (0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
+ (38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
+INDEX 104 STROKE 2 CENTER 23.8095 RIGHT 52.3810
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 7 (0.0000 47.6190) (14.2857 61.9048) (23.8095 66.6667)
+ (38.0952 66.6667) (47.6190 61.9048) (52.3810 47.6190) (52.3810 0.0000)
+INDEX 105 STROKE 2 CENTER 4.7619 RIGHT 9.5238
+ OPEN 5 (0.0000 100.0000) (4.7619 95.2381) (9.5238 100.0000)
+ (4.7619 104.7619) (0.0000 100.0000)
+ OPEN 2 (4.7619 66.6667) (4.7619 0.0000)
+INDEX 106 STROKE 2 CENTER 19.0476 RIGHT 28.5714
+ OPEN 5 (19.0476 100.0000) (23.8095 95.2381) (28.5714 100.0000)
+ (23.8095 104.7619) (19.0476 100.0000)
+ OPEN 5 (23.8095 66.6667) (23.8095 -14.2857) (19.0476 -28.5714)
+ (9.5238 -33.3333) (0.0000 -33.3333)
+INDEX 107 STROKE 3 CENTER 23.8095 RIGHT 52.3810
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+ OPEN 2 (47.6190 66.6667) (0.0000 19.0476)
+ OPEN 2 (19.0476 38.0952) (52.3810 0.0000)
+INDEX 108 STROKE 1 CENTER 0.0000 RIGHT 0.0000
+ OPEN 2 (0.0000 100.0000) (0.0000 0.0000)
+INDEX 109 STROKE 3 CENTER 52.3810 RIGHT 104.7619
+ OPEN 2 (0.0000 66.6667) (0.0000 0.0000)
+ OPEN 7 (0.0000 47.6190) (14.2857 61.9048) (23.8095 66.6667)
+ (38.0952 66.6667) (47.6190 61.9048) (52.3810 47.6190) (52.3810 0.0000)
+ OPEN 7 (52.3810 47.6190) (66.6667 61.9048) (76.1905 66.6667)
+ (90.4762 66.6667) (100.0000 61.9048) (104.7619 47.6190) (104.7619 0.0000)
+INDEX 110 STROKE 2 CENTER 23.8095 RIGHT 52.3810
+ OPEN 2 (0.0000 66.6667) (0.0000 0.0000)
+ OPEN 7 (0.0000 47.6190) (14.2857 61.9048) (23.8095 66.6667)
+ (38.0952 66.6667) (47.6190 61.9048) (52.3810 47.6190) (52.3810 0.0000)
+INDEX 111 STROKE 1 CENTER 28.5714 RIGHT 61.9048
+ OPEN 17 (23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810)
+ (0.0000 38.0952) (0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619)
+ (23.8095 0.0000) (38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
+ (61.9048 28.5714) (61.9048 38.0952) (57.1429 52.3810) (47.6190 61.9048)
+ (38.0952 66.6667) (23.8095 66.6667)
+INDEX 112 STROKE 2 CENTER 28.5714 RIGHT 57.1429
+ OPEN 2 (0.0000 66.6667) (0.0000 -33.3333)
+ OPEN 14 (0.0000 52.3810) (9.5238 61.9048) (19.0476 66.6667)
+ (33.3333 66.6667) (42.8571 61.9048) (52.3810 52.3810) (57.1429 38.0952)
+ (57.1429 28.5714) (52.3810 14.2857) (42.8571 4.7619) (33.3333 0.0000)
+ (19.0476 0.0000) (9.5238 4.7619) (0.0000 14.2857)
+INDEX 113 STROKE 2 CENTER 28.5714 RIGHT 57.1429
+ OPEN 2 (57.1429 66.6667) (57.1429 -33.3333)
+ OPEN 14 (57.1429 52.3810) (47.6190 61.9048) (38.0952 66.6667)
+ (23.8095 66.6667) (14.2857 61.9048) (4.7619 52.3810) (0.0000 38.0952)
+ (0.0000 28.5714) (4.7619 14.2857) (14.2857 4.7619) (23.8095 0.0000)
+ (38.0952 0.0000) (47.6190 4.7619) (57.1429 14.2857)
+INDEX 114 STROKE 2 CENTER 14.2857 RIGHT 38.0952
+ OPEN 2 (0.0000 66.6667) (0.0000 0.0000)
+ OPEN 5 (0.0000 38.0952) (4.7619 52.3810) (14.2857 61.9048)
+ (23.8095 66.6667) (38.0952 66.6667)
+INDEX 115 STROKE 1 CENTER 23.8095 RIGHT 52.3810
+ OPEN 17 (52.3810 52.3810) (47.6190 61.9048) (33.3333 66.6667)
+ (19.0476 66.6667) (4.7619 61.9048) (0.0000 52.3810) (4.7619 42.8571)
+ (14.2857 38.0952) (38.0952 33.3333) (47.6190 28.5714) (52.3810 19.0476)
+ (52.3810 14.2857) (47.6190 4.7619) (33.3333 0.0000) (19.0476 0.0000)
+ (4.7619 4.7619) (0.0000 14.2857)
+INDEX 116 STROKE 2 CENTER 14.2857 RIGHT 38.0952
+ OPEN 5 (14.2857 100.0000) (14.2857 19.0476) (19.0476 4.7619)
+ (28.5714 0.0000) (38.0952 0.0000)
+ OPEN 2 (0.0000 66.6667) (33.3333 66.6667)
+INDEX 117 STROKE 2 CENTER 23.8095 RIGHT 52.3810
+ OPEN 7 (0.0000 66.6667) (0.0000 19.0476) (4.7619 4.7619)
+ (14.2857 0.0000) (28.5714 0.0000) (38.0952 4.7619) (52.3810 19.0476)
+ OPEN 2 (52.3810 66.6667) (52.3810 0.0000)
+INDEX 118 STROKE 2 CENTER 28.5714 RIGHT 57.1429
+ OPEN 2 (0.0000 66.6667) (28.5714 0.0000)
+ OPEN 2 (57.1429 66.6667) (28.5714 0.0000)
+INDEX 119 STROKE 4 CENTER 38.0952 RIGHT 76.1905
+ OPEN 2 (0.0000 66.6667) (19.0476 0.0000)
+ OPEN 2 (38.0952 66.6667) (19.0476 0.0000)
+ OPEN 2 (38.0952 66.6667) (57.1429 0.0000)
+ OPEN 2 (76.1905 66.6667) (57.1429 0.0000)
+INDEX 120 STROKE 2 CENTER 23.8095 RIGHT 52.3810
+ OPEN 2 (0.0000 66.6667) (52.3810 0.0000)
+ OPEN 2 (52.3810 66.6667) (0.0000 0.0000)
+INDEX 121 STROKE 2 CENTER 33.3333 RIGHT 61.9048
+ OPEN 2 (4.7619 66.6667) (33.3333 0.0000)
+ OPEN 6 (61.9048 66.6667) (33.3333 0.0000) (23.8095 -19.0476)
+ (14.2857 -28.5714) (4.7619 -33.3333) (0.0000 -33.3333)
+INDEX 122 STROKE 3 CENTER 23.8095 RIGHT 52.3810
+ OPEN 2 (52.3810 66.6667) (0.0000 0.0000)
+ OPEN 2 (0.0000 66.6667) (52.3810 66.6667)
+ OPEN 2 (0.0000 0.0000) (52.3810 0.0000)
+INDEX 123 STROKE 3 CENTER 14.2857 RIGHT 23.8095
+ OPEN 10 (23.8095 119.0476) (14.2857 114.2857) (9.5238 109.5238)
+ (4.7619 100.0000) (4.7619 90.4762) (9.5238 80.9524) (14.2857 76.1905)
+ (19.0476 66.6667) (19.0476 57.1429) (9.5238 47.6190)
+ OPEN 17 (14.2857 114.2857) (9.5238 104.7619) (9.5238 95.2381)
+ (14.2857 85.7143) (19.0476 80.9524) (23.8095 71.4286) (23.8095 61.9048)
+ (19.0476 52.3810) (0.0000 42.8571) (19.0476 33.3333) (23.8095 23.8095)
+ (23.8095 14.2857) (19.0476 4.7619) (14.2857 0.0000) (9.5238 -9.5238)
+ (9.5238 -19.0476) (14.2857 -28.5714)
+ OPEN 10 (9.5238 38.0952) (19.0476 28.5714) (19.0476 19.0476)
+ (14.2857 9.5238) (9.5238 4.7619) (4.7619 -4.7619) (4.7619 -14.2857)
+ (9.5238 -23.8095) (14.2857 -28.5714) (23.8095 -33.3333)
+INDEX 124 STROKE 1 CENTER 0.0000 RIGHT 0.0000
+ OPEN 2 (0.0000 119.0476) (0.0000 -33.3333)
+INDEX 125 STROKE 3 CENTER 9.5238 RIGHT 23.8095
+ OPEN 10 (0.0000 119.0476) (9.5238 114.2857) (14.2857 109.5238)
+ (19.0476 100.0000) (19.0476 90.4762) (14.2857 80.9524) (9.5238 76.1905)
+ (4.7619 66.6667) (4.7619 57.1429) (14.2857 47.6190)
+ OPEN 17 (9.5238 114.2857) (14.2857 104.7619) (14.2857 95.2381)
+ (9.5238 85.7143) (4.7619 80.9524) (0.0000 71.4286) (0.0000 61.9048)
+ (4.7619 52.3810) (23.8095 42.8571) (4.7619 33.3333) (0.0000 23.8095)
+ (0.0000 14.2857) (4.7619 4.7619) (9.5238 0.0000) (14.2857 -9.5238)
+ (14.2857 -19.0476) (9.5238 -28.5714)
+ OPEN 10 (14.2857 38.0952) (4.7619 28.5714) (4.7619 19.0476)
+ (9.5238 9.5238) (14.2857 4.7619) (19.0476 -4.7619) (19.0476 -14.2857)
+ (14.2857 -23.8095) (9.5238 -28.5714) (0.0000 -33.3333)
+INDEX 126 STROKE 2 CENTER 42.8571 RIGHT 85.7143
+ OPEN 11 (0.0000 28.5714) (0.0000 38.0952) (4.7619 52.3810)
+ (14.2857 57.1429) (23.8095 57.1429) (33.3333 52.3810) (52.3810 38.0952)
+ (61.9048 33.3333) (71.4286 33.3333) (80.9524 38.0952) (85.7143 47.6190)
+ OPEN 11 (0.0000 38.0952) (4.7619 47.6190) (14.2857 52.3810)
+ (23.8095 52.3810) (33.3333 47.6190) (52.3810 33.3333) (61.9048 28.5714)
+ (71.4286 28.5714) (80.9524 33.3333) (85.7143 47.6190) (85.7143 57.1429)
+INDEX 127 STROKE 2 CENTER 33.3333 RIGHT 66.6667
+ OPEN 2 (52.3810 100.0000) (14.2857 -33.3333)
+ OPEN 17 (28.5714 66.6667) (14.2857 61.9048) (4.7619 52.3810)
+ (0.0000 38.0952) (0.0000 23.8095) (4.7619 14.2857) (14.2857 4.7619)
+ (28.5714 0.0000) (38.0952 0.0000) (52.3810 4.7619) (61.9048 14.2857)
+ (66.6667 28.5714) (66.6667 42.8571) (61.9048 52.3810) (52.3810 61.9048)
+ (38.0952 66.6667) (28.5714 66.6667)
+
+
+
+#/* NCGA GRAFNET:SANS-SERIF NORMAL*/
+
+BEARING 32 L_SPACE 0.0 WIDTH 20.0 R_SPACE 0.0
+BEARING 33 L_SPACE 8.62 WIDTH 13.64 R_SPACE 8.48
+BEARING 34 L_SPACE 4.02 WIDTH 32.86 R_SPACE 9.32
+BEARING 35 L_SPACE 3.2 WIDTH 68.94 R_SPACE 4.86
+BEARING 36 L_SPACE 4.82 WIDTH 67.44 R_SPACE 4.72
+BEARING 37 L_SPACE 6.36 WIDTH 112.38 R_SPACE 4.5
+BEARING 38 L_SPACE 5.98 WIDTH 82.02 R_SPACE 0.54
+BEARING 39 L_SPACE 4.44 WIDTH 13.36 R_SPACE 9.18
+BEARING 40 L_SPACE 7.58 WIDTH 24.72 R_SPACE 6.26
+BEARING 41 L_SPACE 5.28 WIDTH 24.34 R_SPACE 8.92
+BEARING 42 L_SPACE 6.96 WIDTH 42.06 R_SPACE 4.86
+BEARING 43 L_SPACE 5.98 WIDTH 96.36 R_SPACE 5.56
+BEARING 44 L_SPACE 8.76 WIDTH 14.2 R_SPACE 7.78
+BEARING 45 L_SPACE 7.38 WIDTH 38.84 R_SPACE 7.66
+BEARING 46 L_SPACE 8.34 WIDTH 13.78 R_SPACE 8.62
+BEARING 47 L_SPACE 7.24 WIDTH 38.44 R_SPACE 8.2
+BEARING 48 L_SPACE 4.98 WIDTH 66.58 R_SPACE 5.42
+BEARING 49 L_SPACE 11.82 WIDTH 34.26 R_SPACE 30.9
+BEARING 50 L_SPACE 5.42 WIDTH 66.0 R_SPACE 5.56
+BEARING 51 L_SPACE 5.0 WIDTH 66.62 R_SPACE 5.38
+BEARING 52 L_SPACE 3.88 WIDTH 68.24 R_SPACE 4.86
+BEARING 53 L_SPACE 4.86 WIDTH 65.96 R_SPACE 6.16
+BEARING 54 L_SPACE 5.58 WIDTH 65.08 R_SPACE 6.32
+BEARING 55 L_SPACE 5.56 WIDTH 66.42 R_SPACE 5.0
+BEARING 56 L_SPACE 5.6 WIDTH 65.98 R_SPACE 5.4
+BEARING 57 L_SPACE 6.6 WIDTH 64.82 R_SPACE 5.56
+BEARING 58 L_SPACE 9.32 WIDTH 14.06 R_SPACE 7.38
+BEARING 59 L_SPACE 8.2 WIDTH 13.96 R_SPACE 8.58
+BEARING 60 L_SPACE 3.06 WIDTH 102.5 R_SPACE 2.36
+BEARING 61 L_SPACE 5.7 WIDTH 96.36 R_SPACE 5.84
+BEARING 62 L_SPACE 2.78 WIDTH 102.5 R_SPACE 2.64
+BEARING 63 L_SPACE 8.42 WIDTH 60.22 R_SPACE 8.34
+BEARING 64 L_SPACE 6.36 WIDTH 126.24 R_SPACE 6.1
+BEARING 65 L_SPACE 2.5 WIDTH 88.16 R_SPACE 1.8
+BEARING 66 L_SPACE 11.42 WIDTH 75.5 R_SPACE 5.54
+BEARING 67 L_SPACE 6.66 WIDTH 87.06 R_SPACE 6.4
+BEARING 68 L_SPACE 11.96 WIDTH 81.48 R_SPACE 6.66
+BEARING 69 L_SPACE 11.42 WIDTH 72.28 R_SPACE 4.86
+BEARING 70 L_SPACE 11.42 WIDTH 67.96 R_SPACE 5.42
+BEARING 71 L_SPACE 7.06 WIDTH 89.56 R_SPACE 11.28
+BEARING 72 L_SPACE 11.42 WIDTH 77.7 R_SPACE 11.0
+BEARING 73 L_SPACE 10.86 WIDTH 13.36 R_SPACE 10.44
+BEARING 74 L_SPACE 2.5 WIDTH 56.96 R_SPACE 9.88
+BEARING 75 L_SPACE 11.28 WIDTH 79.8 R_SPACE 1.38
+BEARING 76 L_SPACE 11.68 WIDTH 62.8 R_SPACE 2.5
+BEARING 77 L_SPACE 10.86 WIDTH 94.56 R_SPACE 10.16
+BEARING 78 L_SPACE 11.14 WIDTH 77.98 R_SPACE 11.0
+BEARING 79 L_SPACE 6.24 WIDTH 95.28 R_SPACE 6.4
+BEARING 80 L_SPACE 12.1 WIDTH 73.44 R_SPACE 6.9
+BEARING 81 L_SPACE 5.3 WIDTH 96.0 R_SPACE 6.6
+BEARING 82 L_SPACE 11.68 WIDTH 80.64 R_SPACE 4.02
+BEARING 83 L_SPACE 8.0 WIDTH 78.28 R_SPACE 6.16
+BEARING 84 L_SPACE 2.36 WIDTH 79.52 R_SPACE 2.92
+BEARING 85 L_SPACE 11.54 WIDTH 77.28 R_SPACE 11.28
+BEARING 86 L_SPACE 2.36 WIDTH 87.04 R_SPACE 3.06
+BEARING 87 L_SPACE 2.22 WIDTH 125.76 R_SPACE 3.06
+BEARING 88 L_SPACE 2.5 WIDTH 86.76 R_SPACE 3.2
+BEARING 89 L_SPACE 1.52 WIDTH 88.98 R_SPACE 1.94
+BEARING 90 L_SPACE 2.5 WIDTH 77.7 R_SPACE 4.58
+BEARING 91 L_SPACE 7.78 WIDTH 25.76 R_SPACE 5.0
+BEARING 92 L_SPACE 5.84 WIDTH 73.24 R_SPACE 5.7
+BEARING 93 L_SPACE 4.44 WIDTH 25.48 R_SPACE 8.62
+BEARING 94 L_SPACE 5.98 WIDTH 55.28 R_SPACE 8.06
+BEARING 95 L_SPACE -1.1 WIDTH 70.04 R_SPACE 0.4
+BEARING 96 L_SPACE 28.26 WIDTH 25.9 R_SPACE 26.74
+BEARING 97 L_SPACE 6.68 WIDTH 67.54 R_SPACE 2.78
+BEARING 98 L_SPACE 8.76 WIDTH 63.66 R_SPACE 4.56
+BEARING 99 L_SPACE 5.52 WIDTH 61.46 R_SPACE 6.26
+BEARING 100 L_SPACE 4.64 WIDTH 63.88 R_SPACE 8.48
+BEARING 101 L_SPACE 5.72 WIDTH 65.62 R_SPACE 5.66
+BEARING 102 L_SPACE 0.68 WIDTH 34.12 R_SPACE -0.12
+BEARING 103 L_SPACE 5.36 WIDTH 63.16 R_SPACE 8.48
+BEARING 104 L_SPACE 9.6 WIDTH 58.34 R_SPACE 9.04
+BEARING 105 L_SPACE 10.02 WIDTH 11.42 R_SPACE 9.32
+BEARING 106 L_SPACE -1.66 WIDTH 23.1 R_SPACE 9.32
+BEARING 107 L_SPACE 9.6 WIDTH 59.18 R_SPACE 0.54
+BEARING 108 L_SPACE 10.02 WIDTH 11.42 R_SPACE 9.32
+BEARING 109 L_SPACE 9.6 WIDTH 96.36 R_SPACE 9.6
+BEARING 110 L_SPACE 9.18 WIDTH 58.48 R_SPACE 9.32
+BEARING 111 L_SPACE 4.98 WIDTH 67.14 R_SPACE 4.86
+BEARING 112 L_SPACE 9.46 WIDTH 63.34 R_SPACE 4.2
+BEARING 113 L_SPACE 4.84 WIDTH 63.38 R_SPACE 8.76
+BEARING 114 L_SPACE 9.46 WIDTH 34.8 R_SPACE 1.94
+BEARING 115 L_SPACE 4.7 WIDTH 59.4 R_SPACE 5.24
+BEARING 116 L_SPACE 0.54 WIDTH 33.42 R_SPACE 0.68
+BEARING 117 L_SPACE 9.46 WIDTH 58.2 R_SPACE 9.32
+BEARING 118 L_SPACE 1.8 WIDTH 65.86 R_SPACE 1.66
+BEARING 119 L_SPACE 2.5 WIDTH 95.82 R_SPACE 1.8
+BEARING 120 L_SPACE 1.66 WIDTH 65.32 R_SPACE 2.36
+BEARING 121 L_SPACE 1.8 WIDTH 65.18 R_SPACE 2.36
+BEARING 122 L_SPACE 4.44 WIDTH 59.88 R_SPACE 5.0
+BEARING 123 L_SPACE 7.38 WIDTH 36.06 R_SPACE 10.44
+BEARING 124 L_SPACE 11.54 WIDTH 6.96 R_SPACE 12.24
+BEARING 125 L_SPACE 9.18 WIDTH 36.2 R_SPACE 8.48
+BEARING 126 L_SPACE 2.92 WIDTH 102.36 R_SPACE 2.64
+
diff --git a/samples/glut/glut.h b/samples/glut/glut.h
new file mode 100644
index 0000000..f0a7ba3
--- /dev/null
+++ b/samples/glut/glut.h
@@ -0,0 +1,595 @@
+#ifndef __glut_h__
+#define __glut_h__
+
+/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */
+
+/* This program is freely distributable without licensing fees and is
+ provided without guarantee or warrantee expressed or implied. This
+ program is -not- in the public domain. */
+
+#if defined(_WIN32)
+
+/* GLUT 3.7 now tries to avoid including <windows.h>
+ to avoid name space pollution, but Win32's <GL/gl.h>
+ needs APIENTRY and WINGDIAPI defined properly. */
+# if 0
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+# else
+ /* XXX This is from Win32's <windef.h> */
+# ifndef APIENTRY
+# define GLUT_APIENTRY_DEFINED
+# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
+# define APIENTRY __stdcall
+# else
+# define APIENTRY
+# endif
+# endif
+ /* XXX This is from Win32's <winnt.h> */
+# ifndef CALLBACK
+# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
+# define CALLBACK __stdcall
+# else
+# define CALLBACK
+# endif
+# endif
+ /* XXX This is from Win32's <wingdi.h> and <winnt.h> */
+# ifndef WINGDIAPI
+# define GLUT_WINGDIAPI_DEFINED
+# define WINGDIAPI __declspec(dllimport)
+# endif
+ /* XXX This is from Win32's <ctype.h> */
+# ifndef _WCHAR_T_DEFINED
+typedef unsigned short wchar_t;
+# define _WCHAR_T_DEFINED
+# endif
+# endif
+
+#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */
+#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */
+#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */
+
+#pragma warning (disable:4244) /* Disable bogus conversion warnings. */
+#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */
+
+#endif
+
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */
+#if !defined(_WIN32)
+#define APIENTRY
+#define GLUT_APIENTRY_DEFINED
+#define CALLBACK
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ GLUT API revision history:
+
+ GLUT_API_VERSION is updated to reflect incompatible GLUT
+ API changes (interface changes, semantic changes, deletions,
+ or additions).
+
+ GLUT_API_VERSION=1 First public release of GLUT. 11/29/94
+
+ GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling,
+ extension. Supports new input devices like tablet, dial and button
+ box, and Spaceball. Easy to query OpenGL extensions.
+
+ GLUT_API_VERSION=3 glutMenuStatus added.
+
+ GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer,
+ glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic
+ video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
+ glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
+ glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
+**/
+#ifndef GLUT_API_VERSION /* allow this to be overriden */
+#define GLUT_API_VERSION 3
+#endif
+
+/**
+ GLUT implementation revision history:
+
+ GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
+ API revisions and implementation revisions (ie, bug fixes).
+
+ GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of
+ GLUT Xlib-based implementation. 11/29/94
+
+ GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of
+ GLUT Xlib-based implementation providing GLUT version 2
+ interfaces.
+
+ GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95
+
+ GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95
+
+ GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95
+
+ GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96
+
+ GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner
+ and video resize. 1/3/97
+
+ GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines.
+
+ GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release.
+
+ GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
+
+ GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 release with GameGLUT support.
+**/
+#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */
+#define GLUT_XLIB_IMPLEMENTATION 13
+#endif
+
+/* Display mode bit masks. */
+#define GLUT_RGB 0
+#define GLUT_RGBA GLUT_RGB
+#define GLUT_INDEX 1
+#define GLUT_SINGLE 0
+#define GLUT_DOUBLE 2
+#define GLUT_ACCUM 4
+#define GLUT_ALPHA 8
+#define GLUT_DEPTH 16
+#define GLUT_STENCIL 32
+#if (GLUT_API_VERSION >= 2)
+#define GLUT_MULTISAMPLE 128
+#define GLUT_STEREO 256
+#endif
+#if (GLUT_API_VERSION >= 3)
+#define GLUT_LUMINANCE 512
+#endif
+
+/* Mouse buttons. */
+#define GLUT_LEFT_BUTTON 0
+#define GLUT_MIDDLE_BUTTON 1
+#define GLUT_RIGHT_BUTTON 2
+
+/* Mouse button state. */
+#define GLUT_DOWN 0
+#define GLUT_UP 1
+
+#if (GLUT_API_VERSION >= 2)
+/* function keys */
+#define GLUT_KEY_F1 1
+#define GLUT_KEY_F2 2
+#define GLUT_KEY_F3 3
+#define GLUT_KEY_F4 4
+#define GLUT_KEY_F5 5
+#define GLUT_KEY_F6 6
+#define GLUT_KEY_F7 7
+#define GLUT_KEY_F8 8
+#define GLUT_KEY_F9 9
+#define GLUT_KEY_F10 10
+#define GLUT_KEY_F11 11
+#define GLUT_KEY_F12 12
+/* directional keys */
+#define GLUT_KEY_LEFT 100
+#define GLUT_KEY_UP 101
+#define GLUT_KEY_RIGHT 102
+#define GLUT_KEY_DOWN 103
+#define GLUT_KEY_PAGE_UP 104
+#define GLUT_KEY_PAGE_DOWN 105
+#define GLUT_KEY_HOME 106
+#define GLUT_KEY_END 107
+#define GLUT_KEY_INSERT 108
+#endif
+
+/* Entry/exit state. */
+#define GLUT_LEFT 0
+#define GLUT_ENTERED 1
+
+/* Menu usage state. */
+#define GLUT_MENU_NOT_IN_USE 0
+#define GLUT_MENU_IN_USE 1
+
+/* Visibility state. */
+#define GLUT_NOT_VISIBLE 0
+#define GLUT_VISIBLE 1
+
+/* Window status state. */
+#define GLUT_HIDDEN 0
+#define GLUT_FULLY_RETAINED 1
+#define GLUT_PARTIALLY_RETAINED 2
+#define GLUT_FULLY_COVERED 3
+
+/* Color index component selection values. */
+#define GLUT_RED 0
+#define GLUT_GREEN 1
+#define GLUT_BLUE 2
+
+/* Layers for use. */
+#define GLUT_NORMAL 0
+#define GLUT_OVERLAY 1
+
+#if defined(_WIN32)
+/* Stroke font constants (use these in GLUT program). */
+#define GLUT_STROKE_ROMAN ((void*)0)
+#define GLUT_STROKE_MONO_ROMAN ((void*)1)
+
+/* Bitmap font constants (use these in GLUT program). */
+#define GLUT_BITMAP_9_BY_15 ((void*)2)
+#define GLUT_BITMAP_8_BY_13 ((void*)3)
+#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4)
+#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5)
+#if (GLUT_API_VERSION >= 3)
+#define GLUT_BITMAP_HELVETICA_10 ((void*)6)
+#define GLUT_BITMAP_HELVETICA_12 ((void*)7)
+#define GLUT_BITMAP_HELVETICA_18 ((void*)8)
+#endif
+#else
+/* Stroke font opaque addresses (use constants instead in source code). */
+extern void *glutStrokeRoman;
+extern void *glutStrokeMonoRoman;
+
+/* Stroke font constants (use these in GLUT program). */
+#define GLUT_STROKE_ROMAN (&glutStrokeRoman)
+#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman)
+
+/* Bitmap font opaque addresses (use constants instead in source code). */
+extern void *glutBitmap9By15;
+extern void *glutBitmap8By13;
+extern void *glutBitmapTimesRoman10;
+extern void *glutBitmapTimesRoman24;
+extern void *glutBitmapHelvetica10;
+extern void *glutBitmapHelvetica12;
+extern void *glutBitmapHelvetica18;
+
+/* Bitmap font constants (use these in GLUT program). */
+#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15)
+#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13)
+#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10)
+#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24)
+#if (GLUT_API_VERSION >= 3)
+#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10)
+#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12)
+#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18)
+#endif
+#endif
+
+/* glutGet parameters. */
+#define GLUT_WINDOW_X 100
+#define GLUT_WINDOW_Y 101
+#define GLUT_WINDOW_WIDTH 102
+#define GLUT_WINDOW_HEIGHT 103
+#define GLUT_WINDOW_BUFFER_SIZE 104
+#define GLUT_WINDOW_STENCIL_SIZE 105
+#define GLUT_WINDOW_DEPTH_SIZE 106
+#define GLUT_WINDOW_RED_SIZE 107
+#define GLUT_WINDOW_GREEN_SIZE 108
+#define GLUT_WINDOW_BLUE_SIZE 109
+#define GLUT_WINDOW_ALPHA_SIZE 110
+#define GLUT_WINDOW_ACCUM_RED_SIZE 111
+#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112
+#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113
+#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114
+#define GLUT_WINDOW_DOUBLEBUFFER 115
+#define GLUT_WINDOW_RGBA 116
+#define GLUT_WINDOW_PARENT 117
+#define GLUT_WINDOW_NUM_CHILDREN 118
+#define GLUT_WINDOW_COLORMAP_SIZE 119
+#if (GLUT_API_VERSION >= 2)
+#define GLUT_WINDOW_NUM_SAMPLES 120
+#define GLUT_WINDOW_STEREO 121
+#endif
+#if (GLUT_API_VERSION >= 3)
+#define GLUT_WINDOW_CURSOR 122
+#endif
+#define GLUT_SCREEN_WIDTH 200
+#define GLUT_SCREEN_HEIGHT 201
+#define GLUT_SCREEN_WIDTH_MM 202
+#define GLUT_SCREEN_HEIGHT_MM 203
+#define GLUT_MENU_NUM_ITEMS 300
+#define GLUT_DISPLAY_MODE_POSSIBLE 400
+#define GLUT_INIT_WINDOW_X 500
+#define GLUT_INIT_WINDOW_Y 501
+#define GLUT_INIT_WINDOW_WIDTH 502
+#define GLUT_INIT_WINDOW_HEIGHT 503
+#define GLUT_INIT_DISPLAY_MODE 504
+#if (GLUT_API_VERSION >= 2)
+#define GLUT_ELAPSED_TIME 700
+#endif
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
+#define GLUT_WINDOW_FORMAT_ID 123
+#endif
+
+#if (GLUT_API_VERSION >= 2)
+/* glutDeviceGet parameters. */
+#define GLUT_HAS_KEYBOARD 600
+#define GLUT_HAS_MOUSE 601
+#define GLUT_HAS_SPACEBALL 602
+#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603
+#define GLUT_HAS_TABLET 604
+#define GLUT_NUM_MOUSE_BUTTONS 605
+#define GLUT_NUM_SPACEBALL_BUTTONS 606
+#define GLUT_NUM_BUTTON_BOX_BUTTONS 607
+#define GLUT_NUM_DIALS 608
+#define GLUT_NUM_TABLET_BUTTONS 609
+#endif
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
+#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610
+#define GLUT_DEVICE_KEY_REPEAT 611
+#define GLUT_HAS_JOYSTICK 612
+#define GLUT_OWNS_JOYSTICK 613
+#define GLUT_JOYSTICK_BUTTONS 614
+#define GLUT_JOYSTICK_AXES 615
+#define GLUT_JOYSTICK_POLL_RATE 616
+#endif
+
+#if (GLUT_API_VERSION >= 3)
+/* glutLayerGet parameters. */
+#define GLUT_OVERLAY_POSSIBLE 800
+#define GLUT_LAYER_IN_USE 801
+#define GLUT_HAS_OVERLAY 802
+#define GLUT_TRANSPARENT_INDEX 803
+#define GLUT_NORMAL_DAMAGED 804
+#define GLUT_OVERLAY_DAMAGED 805
+
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
+/* glutVideoResizeGet parameters. */
+#define GLUT_VIDEO_RESIZE_POSSIBLE 900
+#define GLUT_VIDEO_RESIZE_IN_USE 901
+#define GLUT_VIDEO_RESIZE_X_DELTA 902
+#define GLUT_VIDEO_RESIZE_Y_DELTA 903
+#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904
+#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905
+#define GLUT_VIDEO_RESIZE_X 906
+#define GLUT_VIDEO_RESIZE_Y 907
+#define GLUT_VIDEO_RESIZE_WIDTH 908
+#define GLUT_VIDEO_RESIZE_HEIGHT 909
+#endif
+
+/* glutUseLayer parameters. */
+#define GLUT_NORMAL 0
+#define GLUT_OVERLAY 1
+
+/* glutGetModifiers return mask. */
+#define GLUT_ACTIVE_SHIFT 1
+#define GLUT_ACTIVE_CTRL 2
+#define GLUT_ACTIVE_ALT 4
+
+/* glutSetCursor parameters. */
+/* Basic arrows. */
+#define GLUT_CURSOR_RIGHT_ARROW 0
+#define GLUT_CURSOR_LEFT_ARROW 1
+/* Symbolic cursor shapes. */
+#define GLUT_CURSOR_INFO 2
+#define GLUT_CURSOR_DESTROY 3
+#define GLUT_CURSOR_HELP 4
+#define GLUT_CURSOR_CYCLE 5
+#define GLUT_CURSOR_SPRAY 6
+#define GLUT_CURSOR_WAIT 7
+#define GLUT_CURSOR_TEXT 8
+#define GLUT_CURSOR_CROSSHAIR 9
+/* Directional cursors. */
+#define GLUT_CURSOR_UP_DOWN 10
+#define GLUT_CURSOR_LEFT_RIGHT 11
+/* Sizing cursors. */
+#define GLUT_CURSOR_TOP_SIDE 12
+#define GLUT_CURSOR_BOTTOM_SIDE 13
+#define GLUT_CURSOR_LEFT_SIDE 14
+#define GLUT_CURSOR_RIGHT_SIDE 15
+#define GLUT_CURSOR_TOP_LEFT_CORNER 16
+#define GLUT_CURSOR_TOP_RIGHT_CORNER 17
+#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18
+#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19
+/* Inherit from parent window. */
+#define GLUT_CURSOR_INHERIT 100
+/* Blank cursor. */
+#define GLUT_CURSOR_NONE 101
+/* Fullscreen crosshair (if available). */
+#define GLUT_CURSOR_FULL_CROSSHAIR 102
+#endif
+
+/* GLUT initialization sub-API. */
+extern void APIENTRY glutInit(int *argcp, char **argv);
+extern void APIENTRY glutInitDisplayMode(unsigned int mode);
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
+extern void APIENTRY glutInitDisplayString(const char *string);
+#endif
+extern void APIENTRY glutInitWindowPosition(int x, int y);
+extern void APIENTRY glutInitWindowSize(int width, int height);
+extern void APIENTRY glutMainLoop(void);
+
+/* GLUT window sub-API. */
+extern int APIENTRY glutCreateWindow(const char *title);
+extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
+extern void APIENTRY glutDestroyWindow(int win);
+extern void APIENTRY glutPostRedisplay(void);
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
+extern void APIENTRY glutPostWindowRedisplay(int win);
+#endif
+extern void APIENTRY glutSwapBuffers(void);
+extern int APIENTRY glutGetWindow(void);
+extern void APIENTRY glutSetWindow(int win);
+extern void APIENTRY glutSetWindowTitle(const char *title);
+extern void APIENTRY glutSetIconTitle(const char *title);
+extern void APIENTRY glutPositionWindow(int x, int y);
+extern void APIENTRY glutReshapeWindow(int width, int height);
+extern void APIENTRY glutPopWindow(void);
+extern void APIENTRY glutPushWindow(void);
+extern void APIENTRY glutIconifyWindow(void);
+extern void APIENTRY glutShowWindow(void);
+extern void APIENTRY glutHideWindow(void);
+#if (GLUT_API_VERSION >= 3)
+extern void APIENTRY glutFullScreen(void);
+extern void APIENTRY glutSetCursor(int cursor);
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
+extern void APIENTRY glutWarpPointer(int x, int y);
+#endif
+
+/* GLUT overlay sub-API. */
+extern void APIENTRY glutEstablishOverlay(void);
+extern void APIENTRY glutRemoveOverlay(void);
+extern void APIENTRY glutUseLayer(GLenum layer);
+extern void APIENTRY glutPostOverlayRedisplay(void);
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
+extern void APIENTRY glutPostWindowOverlayRedisplay(int win);
+#endif
+extern void APIENTRY glutShowOverlay(void);
+extern void APIENTRY glutHideOverlay(void);
+#endif
+
+/* GLUT menu sub-API. */
+extern int APIENTRY glutCreateMenu(void (*)(int));
+extern void APIENTRY glutDestroyMenu(int menu);
+extern int APIENTRY glutGetMenu(void);
+extern void APIENTRY glutSetMenu(int menu);
+extern void APIENTRY glutAddMenuEntry(const char *label, int value);
+extern void APIENTRY glutAddSubMenu(const char *label, int submenu);
+extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
+extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
+extern void APIENTRY glutRemoveMenuItem(int item);
+extern void APIENTRY glutAttachMenu(int button);
+extern void APIENTRY glutDetachMenu(int button);
+
+/* GLUT window callback sub-API. */
+extern void APIENTRY glutDisplayFunc(void (*func)(void));
+extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height));
+extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));
+extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y));
+extern void APIENTRY glutMotionFunc(void (*func)(int x, int y));
+extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y));
+extern void APIENTRY glutEntryFunc(void (*func)(int state));
+extern void APIENTRY glutVisibilityFunc(void (*func)(int state));
+extern void APIENTRY glutIdleFunc(void (*func)(void));
+extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value);
+extern void APIENTRY glutMenuStateFunc(void (*func)(int state));
+#if (GLUT_API_VERSION >= 2)
+extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y));
+extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z));
+extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z));
+extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state));
+extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state));
+extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value));
+extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y));
+extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y));
+#if (GLUT_API_VERSION >= 3)
+extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y));
+extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void));
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
+extern void APIENTRY glutWindowStatusFunc(void (*func)(int state));
+#endif
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
+extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y));
+extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y));
+extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
+#endif
+#endif
+#endif
+
+/* GLUT color index sub-API. */
+extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
+extern GLfloat APIENTRY glutGetColor(int ndx, int component);
+extern void APIENTRY glutCopyColormap(int win);
+
+/* GLUT state retrieval sub-API. */
+extern int APIENTRY glutGet(GLenum type);
+extern int APIENTRY glutDeviceGet(GLenum type);
+#if (GLUT_API_VERSION >= 2)
+/* GLUT extension support sub-API */
+extern int APIENTRY glutExtensionSupported(const char *name);
+#endif
+#if (GLUT_API_VERSION >= 3)
+extern int APIENTRY glutGetModifiers(void);
+extern int APIENTRY glutLayerGet(GLenum type);
+#endif
+
+/* GLUT font sub-API */
+extern void APIENTRY glutBitmapCharacter(void *font, int character);
+extern int APIENTRY glutBitmapWidth(void *font, int character);
+extern void APIENTRY glutStrokeCharacter(void *font, int character);
+extern int APIENTRY glutStrokeWidth(void *font, int character);
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
+extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string);
+extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string);
+#endif
+
+/* GLUT pre-built models sub-API */
+extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
+extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
+extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
+extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
+extern void APIENTRY glutWireCube(GLdouble size);
+extern void APIENTRY glutSolidCube(GLdouble size);
+extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
+extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
+extern void APIENTRY glutWireDodecahedron(void);
+extern void APIENTRY glutSolidDodecahedron(void);
+extern void APIENTRY glutWireTeapot(GLdouble size);
+extern void APIENTRY glutSolidTeapot(GLdouble size);
+extern void APIENTRY glutWireOctahedron(void);
+extern void APIENTRY glutSolidOctahedron(void);
+extern void APIENTRY glutWireTetrahedron(void);
+extern void APIENTRY glutSolidTetrahedron(void);
+extern void APIENTRY glutWireIcosahedron(void);
+extern void APIENTRY glutSolidIcosahedron(void);
+
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
+/* GLUT video resize sub-API. */
+extern int APIENTRY glutVideoResizeGet(GLenum param);
+extern void APIENTRY glutSetupVideoResizing(void);
+extern void APIENTRY glutStopVideoResizing(void);
+extern void APIENTRY glutVideoResize(int x, int y, int width, int height);
+extern void APIENTRY glutVideoPan(int x, int y, int width, int height);
+
+/* GLUT debugging sub-API. */
+extern void APIENTRY glutReportErrors(void);
+#endif
+
+#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
+/* GLUT device control sub-API. */
+/* glutSetKeyRepeat modes. */
+#define GLUT_KEY_REPEAT_OFF 0
+#define GLUT_KEY_REPEAT_ON 1
+#define GLUT_KEY_REPEAT_DEFAULT 2
+
+/* Joystick button masks. */
+#define GLUT_JOYSTICK_BUTTON_A 1
+#define GLUT_JOYSTICK_BUTTON_B 2
+#define GLUT_JOYSTICK_BUTTON_C 4
+#define GLUT_JOYSTICK_BUTTON_D 8
+
+extern void APIENTRY glutIgnoreKeyRepeat(int ignore);
+extern void APIENTRY glutSetKeyRepeat(int repeatMode);
+extern void APIENTRY glutForceJoystickFunc(void);
+
+/* GLUT game mode sub-API. */
+/* glutGameModeGet. */
+#define GLUT_GAME_MODE_ACTIVE 0
+#define GLUT_GAME_MODE_POSSIBLE 1
+#define GLUT_GAME_MODE_WIDTH 2
+#define GLUT_GAME_MODE_HEIGHT 3
+#define GLUT_GAME_MODE_PIXEL_DEPTH 4
+#define GLUT_GAME_MODE_REFRESH_RATE 5
+#define GLUT_GAME_MODE_DISPLAY_CHANGED 6
+
+extern void APIENTRY glutGameModeString(const char *string);
+extern int APIENTRY glutEnterGameMode(void);
+extern void APIENTRY glutLeaveGameMode(void);
+extern int APIENTRY glutGameModeGet(GLenum mode);
+#endif
+
+#ifdef __cplusplus
+}
+
+#endif
+
+#ifdef GLUT_APIENTRY_DEFINED
+# undef GLUT_APIENTRY_DEFINED
+# undef APIENTRY
+#endif
+
+#ifdef GLUT_WINGDIAPI_DEFINED
+# undef GLUT_WINGDIAPI_DEFINED
+# undef WINGDIAPI
+#endif
+
+#endif /* __glut_h__ */
diff --git a/samples/glut/glut_roman.c b/samples/glut/glut_roman.c
new file mode 100644
index 0000000..af2b4ec
--- /dev/null
+++ b/samples/glut/glut_roman.c
@@ -0,0 +1,2451 @@
+
+/* GENERATED FILE -- DO NOT MODIFY */
+
+#include "glutstroke.h"
+
+/* char: 33 '!' */
+
+static const CoordRec char33_stroke0[] = {
+ { 13.3819, 100 },
+ { 13.3819, 33.3333 },
+};
+
+static const CoordRec char33_stroke1[] = {
+ { 13.3819, 9.5238 },
+ { 8.62, 4.7619 },
+ { 13.3819, 0 },
+ { 18.1438, 4.7619 },
+ { 13.3819, 9.5238 },
+};
+
+static const StrokeRec char33[] = {
+ { 2, char33_stroke0 },
+ { 5, char33_stroke1 },
+};
+
+/* char: 34 '"' */
+
+static const CoordRec char34_stroke0[] = {
+ { 4.02, 100 },
+ { 4.02, 66.6667 },
+};
+
+static const CoordRec char34_stroke1[] = {
+ { 42.1152, 100 },
+ { 42.1152, 66.6667 },
+};
+
+static const StrokeRec char34[] = {
+ { 2, char34_stroke0 },
+ { 2, char34_stroke1 },
+};
+
+/* char: 35 '#' */
+
+static const CoordRec char35_stroke0[] = {
+ { 41.2952, 119.048 },
+ { 7.9619, -33.3333 },
+};
+
+static const CoordRec char35_stroke1[] = {
+ { 69.8667, 119.048 },
+ { 36.5333, -33.3333 },
+};
+
+static const CoordRec char35_stroke2[] = {
+ { 7.9619, 57.1429 },
+ { 74.6286, 57.1429 },
+};
+
+static const CoordRec char35_stroke3[] = {
+ { 3.2, 28.5714 },
+ { 69.8667, 28.5714 },
+};
+
+static const StrokeRec char35[] = {
+ { 2, char35_stroke0 },
+ { 2, char35_stroke1 },
+ { 2, char35_stroke2 },
+ { 2, char35_stroke3 },
+};
+
+/* char: 36 '$' */
+
+static const CoordRec char36_stroke0[] = {
+ { 28.6295, 119.048 },
+ { 28.6295, -19.0476 },
+};
+
+static const CoordRec char36_stroke1[] = {
+ { 47.6771, 119.048 },
+ { 47.6771, -19.0476 },
+};
+
+static const CoordRec char36_stroke2[] = {
+ { 71.4867, 85.7143 },
+ { 61.9629, 95.2381 },
+ { 47.6771, 100 },
+ { 28.6295, 100 },
+ { 14.3438, 95.2381 },
+ { 4.82, 85.7143 },
+ { 4.82, 76.1905 },
+ { 9.5819, 66.6667 },
+ { 14.3438, 61.9048 },
+ { 23.8676, 57.1429 },
+ { 52.439, 47.619 },
+ { 61.9629, 42.8571 },
+ { 66.7248, 38.0952 },
+ { 71.4867, 28.5714 },
+ { 71.4867, 14.2857 },
+ { 61.9629, 4.7619 },
+ { 47.6771, 0 },
+ { 28.6295, 0 },
+ { 14.3438, 4.7619 },
+ { 4.82, 14.2857 },
+};
+
+static const StrokeRec char36[] = {
+ { 2, char36_stroke0 },
+ { 2, char36_stroke1 },
+ { 20, char36_stroke2 },
+};
+
+/* char: 37 '%' */
+
+static const CoordRec char37_stroke0[] = {
+ { 92.0743, 100 },
+ { 6.36, 0 },
+};
+
+static const CoordRec char37_stroke1[] = {
+ { 30.1695, 100 },
+ { 39.6933, 90.4762 },
+ { 39.6933, 80.9524 },
+ { 34.9314, 71.4286 },
+ { 25.4076, 66.6667 },
+ { 15.8838, 66.6667 },
+ { 6.36, 76.1905 },
+ { 6.36, 85.7143 },
+ { 11.1219, 95.2381 },
+ { 20.6457, 100 },
+ { 30.1695, 100 },
+ { 39.6933, 95.2381 },
+ { 53.979, 90.4762 },
+ { 68.2648, 90.4762 },
+ { 82.5505, 95.2381 },
+ { 92.0743, 100 },
+};
+
+static const CoordRec char37_stroke2[] = {
+ { 73.0267, 33.3333 },
+ { 63.5029, 28.5714 },
+ { 58.741, 19.0476 },
+ { 58.741, 9.5238 },
+ { 68.2648, 0 },
+ { 77.7886, 0 },
+ { 87.3124, 4.7619 },
+ { 92.0743, 14.2857 },
+ { 92.0743, 23.8095 },
+ { 82.5505, 33.3333 },
+ { 73.0267, 33.3333 },
+};
+
+static const StrokeRec char37[] = {
+ { 2, char37_stroke0 },
+ { 16, char37_stroke1 },
+ { 11, char37_stroke2 },
+};
+
+/* char: 38 '&' */
+
+static const CoordRec char38_stroke0[] = {
+ { 101.218, 57.1429 },
+ { 101.218, 61.9048 },
+ { 96.4562, 66.6667 },
+ { 91.6943, 66.6667 },
+ { 86.9324, 61.9048 },
+ { 82.1705, 52.381 },
+ { 72.6467, 28.5714 },
+ { 63.1229, 14.2857 },
+ { 53.599, 4.7619 },
+ { 44.0752, 0 },
+ { 25.0276, 0 },
+ { 15.5038, 4.7619 },
+ { 10.7419, 9.5238 },
+ { 5.98, 19.0476 },
+ { 5.98, 28.5714 },
+ { 10.7419, 38.0952 },
+ { 15.5038, 42.8571 },
+ { 48.8371, 61.9048 },
+ { 53.599, 66.6667 },
+ { 58.361, 76.1905 },
+ { 58.361, 85.7143 },
+ { 53.599, 95.2381 },
+ { 44.0752, 100 },
+ { 34.5514, 95.2381 },
+ { 29.7895, 85.7143 },
+ { 29.7895, 76.1905 },
+ { 34.5514, 61.9048 },
+ { 44.0752, 47.619 },
+ { 67.8848, 14.2857 },
+ { 77.4086, 4.7619 },
+ { 86.9324, 0 },
+ { 96.4562, 0 },
+ { 101.218, 4.7619 },
+ { 101.218, 9.5238 },
+};
+
+static const StrokeRec char38[] = {
+ { 34, char38_stroke0 },
+};
+
+/* char: 39 ''' */
+
+static const CoordRec char39_stroke0[] = {
+ { 4.44, 100 },
+ { 4.44, 66.6667 },
+};
+
+static const StrokeRec char39[] = {
+ { 2, char39_stroke0 },
+};
+
+/* char: 40 '(' */
+
+static const CoordRec char40_stroke0[] = {
+ { 40.9133, 119.048 },
+ { 31.3895, 109.524 },
+ { 21.8657, 95.2381 },
+ { 12.3419, 76.1905 },
+ { 7.58, 52.381 },
+ { 7.58, 33.3333 },
+ { 12.3419, 9.5238 },
+ { 21.8657, -9.5238 },
+ { 31.3895, -23.8095 },
+ { 40.9133, -33.3333 },
+};
+
+static const StrokeRec char40[] = {
+ { 10, char40_stroke0 },
+};
+
+/* char: 41 ')' */
+
+static const CoordRec char41_stroke0[] = {
+ { 5.28, 119.048 },
+ { 14.8038, 109.524 },
+ { 24.3276, 95.2381 },
+ { 33.8514, 76.1905 },
+ { 38.6133, 52.381 },
+ { 38.6133, 33.3333 },
+ { 33.8514, 9.5238 },
+ { 24.3276, -9.5238 },
+ { 14.8038, -23.8095 },
+ { 5.28, -33.3333 },
+};
+
+static const StrokeRec char41[] = {
+ { 10, char41_stroke0 },
+};
+
+/* char: 42 '*' */
+
+static const CoordRec char42_stroke0[] = {
+ { 30.7695, 71.4286 },
+ { 30.7695, 14.2857 },
+};
+
+static const CoordRec char42_stroke1[] = {
+ { 6.96, 57.1429 },
+ { 54.579, 28.5714 },
+};
+
+static const CoordRec char42_stroke2[] = {
+ { 54.579, 57.1429 },
+ { 6.96, 28.5714 },
+};
+
+static const StrokeRec char42[] = {
+ { 2, char42_stroke0 },
+ { 2, char42_stroke1 },
+ { 2, char42_stroke2 },
+};
+
+/* char: 43 '+' */
+
+static const CoordRec char43_stroke0[] = {
+ { 48.8371, 85.7143 },
+ { 48.8371, 0 },
+};
+
+static const CoordRec char43_stroke1[] = {
+ { 5.98, 42.8571 },
+ { 91.6943, 42.8571 },
+};
+
+static const StrokeRec char43[] = {
+ { 2, char43_stroke0 },
+ { 2, char43_stroke1 },
+};
+
+/* char: 44 ',' */
+
+static const CoordRec char44_stroke0[] = {
+ { 18.2838, 4.7619 },
+ { 13.5219, 0 },
+ { 8.76, 4.7619 },
+ { 13.5219, 9.5238 },
+ { 18.2838, 4.7619 },
+ { 18.2838, -4.7619 },
+ { 13.5219, -14.2857 },
+ { 8.76, -19.0476 },
+};
+
+static const StrokeRec char44[] = {
+ { 8, char44_stroke0 },
+};
+
+/* char: 45 '-' */
+
+static const CoordRec char45_stroke0[] = {
+ { 7.38, 42.8571 },
+ { 93.0943, 42.8571 },
+};
+
+static const StrokeRec char45[] = {
+ { 2, char45_stroke0 },
+};
+
+/* char: 46 '.' */
+
+static const CoordRec char46_stroke0[] = {
+ { 13.1019, 9.5238 },
+ { 8.34, 4.7619 },
+ { 13.1019, 0 },
+ { 17.8638, 4.7619 },
+ { 13.1019, 9.5238 },
+};
+
+static const StrokeRec char46[] = {
+ { 5, char46_stroke0 },
+};
+
+/* char: 47 '/' */
+
+static const CoordRec char47_stroke0[] = {
+ { 7.24, -14.2857 },
+ { 73.9067, 100 },
+};
+
+static const StrokeRec char47[] = {
+ { 2, char47_stroke0 },
+};
+
+/* char: 48 '0' */
+
+static const CoordRec char48_stroke0[] = {
+ { 33.5514, 100 },
+ { 19.2657, 95.2381 },
+ { 9.7419, 80.9524 },
+ { 4.98, 57.1429 },
+ { 4.98, 42.8571 },
+ { 9.7419, 19.0476 },
+ { 19.2657, 4.7619 },
+ { 33.5514, 0 },
+ { 43.0752, 0 },
+ { 57.361, 4.7619 },
+ { 66.8848, 19.0476 },
+ { 71.6467, 42.8571 },
+ { 71.6467, 57.1429 },
+ { 66.8848, 80.9524 },
+ { 57.361, 95.2381 },
+ { 43.0752, 100 },
+ { 33.5514, 100 },
+};
+
+static const StrokeRec char48[] = {
+ { 17, char48_stroke0 },
+};
+
+/* char: 49 '1' */
+
+static const CoordRec char49_stroke0[] = {
+ { 11.82, 80.9524 },
+ { 21.3438, 85.7143 },
+ { 35.6295, 100 },
+ { 35.6295, 0 },
+};
+
+static const StrokeRec char49[] = {
+ { 4, char49_stroke0 },
+};
+
+/* char: 50 '2' */
+
+static const CoordRec char50_stroke0[] = {
+ { 10.1819, 76.1905 },
+ { 10.1819, 80.9524 },
+ { 14.9438, 90.4762 },
+ { 19.7057, 95.2381 },
+ { 29.2295, 100 },
+ { 48.2771, 100 },
+ { 57.801, 95.2381 },
+ { 62.5629, 90.4762 },
+ { 67.3248, 80.9524 },
+ { 67.3248, 71.4286 },
+ { 62.5629, 61.9048 },
+ { 53.039, 47.619 },
+ { 5.42, 0 },
+ { 72.0867, 0 },
+};
+
+static const StrokeRec char50[] = {
+ { 14, char50_stroke0 },
+};
+
+/* char: 51 '3' */
+
+static const CoordRec char51_stroke0[] = {
+ { 14.5238, 100 },
+ { 66.9048, 100 },
+ { 38.3333, 61.9048 },
+ { 52.619, 61.9048 },
+ { 62.1429, 57.1429 },
+ { 66.9048, 52.381 },
+ { 71.6667, 38.0952 },
+ { 71.6667, 28.5714 },
+ { 66.9048, 14.2857 },
+ { 57.381, 4.7619 },
+ { 43.0952, 0 },
+ { 28.8095, 0 },
+ { 14.5238, 4.7619 },
+ { 9.7619, 9.5238 },
+ { 5, 19.0476 },
+};
+
+static const StrokeRec char51[] = {
+ { 15, char51_stroke0 },
+};
+
+/* char: 52 '4' */
+
+static const CoordRec char52_stroke0[] = {
+ { 51.499, 100 },
+ { 3.88, 33.3333 },
+ { 75.3086, 33.3333 },
+};
+
+static const CoordRec char52_stroke1[] = {
+ { 51.499, 100 },
+ { 51.499, 0 },
+};
+
+static const StrokeRec char52[] = {
+ { 3, char52_stroke0 },
+ { 2, char52_stroke1 },
+};
+
+/* char: 53 '5' */
+
+static const CoordRec char53_stroke0[] = {
+ { 62.0029, 100 },
+ { 14.3838, 100 },
+ { 9.6219, 57.1429 },
+ { 14.3838, 61.9048 },
+ { 28.6695, 66.6667 },
+ { 42.9552, 66.6667 },
+ { 57.241, 61.9048 },
+ { 66.7648, 52.381 },
+ { 71.5267, 38.0952 },
+ { 71.5267, 28.5714 },
+ { 66.7648, 14.2857 },
+ { 57.241, 4.7619 },
+ { 42.9552, 0 },
+ { 28.6695, 0 },
+ { 14.3838, 4.7619 },
+ { 9.6219, 9.5238 },
+ { 4.86, 19.0476 },
+};
+
+static const StrokeRec char53[] = {
+ { 17, char53_stroke0 },
+};
+
+/* char: 54 '6' */
+
+static const CoordRec char54_stroke0[] = {
+ { 62.7229, 85.7143 },
+ { 57.961, 95.2381 },
+ { 43.6752, 100 },
+ { 34.1514, 100 },
+ { 19.8657, 95.2381 },
+ { 10.3419, 80.9524 },
+ { 5.58, 57.1429 },
+ { 5.58, 33.3333 },
+ { 10.3419, 14.2857 },
+ { 19.8657, 4.7619 },
+ { 34.1514, 0 },
+ { 38.9133, 0 },
+ { 53.199, 4.7619 },
+ { 62.7229, 14.2857 },
+ { 67.4848, 28.5714 },
+ { 67.4848, 33.3333 },
+ { 62.7229, 47.619 },
+ { 53.199, 57.1429 },
+ { 38.9133, 61.9048 },
+ { 34.1514, 61.9048 },
+ { 19.8657, 57.1429 },
+ { 10.3419, 47.619 },
+ { 5.58, 33.3333 },
+};
+
+static const StrokeRec char54[] = {
+ { 23, char54_stroke0 },
+};
+
+/* char: 55 '7' */
+
+static const CoordRec char55_stroke0[] = {
+ { 72.2267, 100 },
+ { 24.6076, 0 },
+};
+
+static const CoordRec char55_stroke1[] = {
+ { 5.56, 100 },
+ { 72.2267, 100 },
+};
+
+static const StrokeRec char55[] = {
+ { 2, char55_stroke0 },
+ { 2, char55_stroke1 },
+};
+
+/* char: 56 '8' */
+
+static const CoordRec char56_stroke0[] = {
+ { 29.4095, 100 },
+ { 15.1238, 95.2381 },
+ { 10.3619, 85.7143 },
+ { 10.3619, 76.1905 },
+ { 15.1238, 66.6667 },
+ { 24.6476, 61.9048 },
+ { 43.6952, 57.1429 },
+ { 57.981, 52.381 },
+ { 67.5048, 42.8571 },
+ { 72.2667, 33.3333 },
+ { 72.2667, 19.0476 },
+ { 67.5048, 9.5238 },
+ { 62.7429, 4.7619 },
+ { 48.4571, 0 },
+ { 29.4095, 0 },
+ { 15.1238, 4.7619 },
+ { 10.3619, 9.5238 },
+ { 5.6, 19.0476 },
+ { 5.6, 33.3333 },
+ { 10.3619, 42.8571 },
+ { 19.8857, 52.381 },
+ { 34.1714, 57.1429 },
+ { 53.219, 61.9048 },
+ { 62.7429, 66.6667 },
+ { 67.5048, 76.1905 },
+ { 67.5048, 85.7143 },
+ { 62.7429, 95.2381 },
+ { 48.4571, 100 },
+ { 29.4095, 100 },
+};
+
+static const StrokeRec char56[] = {
+ { 29, char56_stroke0 },
+};
+
+/* char: 57 '9' */
+
+static const CoordRec char57_stroke0[] = {
+ { 68.5048, 66.6667 },
+ { 63.7429, 52.381 },
+ { 54.219, 42.8571 },
+ { 39.9333, 38.0952 },
+ { 35.1714, 38.0952 },
+ { 20.8857, 42.8571 },
+ { 11.3619, 52.381 },
+ { 6.6, 66.6667 },
+ { 6.6, 71.4286 },
+ { 11.3619, 85.7143 },
+ { 20.8857, 95.2381 },
+ { 35.1714, 100 },
+ { 39.9333, 100 },
+ { 54.219, 95.2381 },
+ { 63.7429, 85.7143 },
+ { 68.5048, 66.6667 },
+ { 68.5048, 42.8571 },
+ { 63.7429, 19.0476 },
+ { 54.219, 4.7619 },
+ { 39.9333, 0 },
+ { 30.4095, 0 },
+ { 16.1238, 4.7619 },
+ { 11.3619, 14.2857 },
+};
+
+static const StrokeRec char57[] = {
+ { 23, char57_stroke0 },
+};
+
+/* char: 58 ':' */
+
+static const CoordRec char58_stroke0[] = {
+ { 14.0819, 66.6667 },
+ { 9.32, 61.9048 },
+ { 14.0819, 57.1429 },
+ { 18.8438, 61.9048 },
+ { 14.0819, 66.6667 },
+};
+
+static const CoordRec char58_stroke1[] = {
+ { 14.0819, 9.5238 },
+ { 9.32, 4.7619 },
+ { 14.0819, 0 },
+ { 18.8438, 4.7619 },
+ { 14.0819, 9.5238 },
+};
+
+static const StrokeRec char58[] = {
+ { 5, char58_stroke0 },
+ { 5, char58_stroke1 },
+};
+
+/* char: 59 ';' */
+
+static const CoordRec char59_stroke0[] = {
+ { 12.9619, 66.6667 },
+ { 8.2, 61.9048 },
+ { 12.9619, 57.1429 },
+ { 17.7238, 61.9048 },
+ { 12.9619, 66.6667 },
+};
+
+static const CoordRec char59_stroke1[] = {
+ { 17.7238, 4.7619 },
+ { 12.9619, 0 },
+ { 8.2, 4.7619 },
+ { 12.9619, 9.5238 },
+ { 17.7238, 4.7619 },
+ { 17.7238, -4.7619 },
+ { 12.9619, -14.2857 },
+ { 8.2, -19.0476 },
+};
+
+static const StrokeRec char59[] = {
+ { 5, char59_stroke0 },
+ { 8, char59_stroke1 },
+};
+
+/* char: 60 '<' */
+
+static const CoordRec char60_stroke0[] = {
+ { 79.2505, 85.7143 },
+ { 3.06, 42.8571 },
+ { 79.2505, 0 },
+};
+
+static const StrokeRec char60[] = {
+ { 3, char60_stroke0 },
+};
+
+/* char: 61 '=' */
+
+static const CoordRec char61_stroke0[] = {
+ { 5.7, 57.1429 },
+ { 91.4143, 57.1429 },
+};
+
+static const CoordRec char61_stroke1[] = {
+ { 5.7, 28.5714 },
+ { 91.4143, 28.5714 },
+};
+
+static const StrokeRec char61[] = {
+ { 2, char61_stroke0 },
+ { 2, char61_stroke1 },
+};
+
+/* char: 62 '>' */
+
+static const CoordRec char62_stroke0[] = {
+ { 2.78, 85.7143 },
+ { 78.9705, 42.8571 },
+ { 2.78, 0 },
+};
+
+static const StrokeRec char62[] = {
+ { 3, char62_stroke0 },
+};
+
+/* char: 63 '?' */
+
+static const CoordRec char63_stroke0[] = {
+ { 8.42, 76.1905 },
+ { 8.42, 80.9524 },
+ { 13.1819, 90.4762 },
+ { 17.9438, 95.2381 },
+ { 27.4676, 100 },
+ { 46.5152, 100 },
+ { 56.039, 95.2381 },
+ { 60.801, 90.4762 },
+ { 65.5629, 80.9524 },
+ { 65.5629, 71.4286 },
+ { 60.801, 61.9048 },
+ { 56.039, 57.1429 },
+ { 36.9914, 47.619 },
+ { 36.9914, 33.3333 },
+};
+
+static const CoordRec char63_stroke1[] = {
+ { 36.9914, 9.5238 },
+ { 32.2295, 4.7619 },
+ { 36.9914, 0 },
+ { 41.7533, 4.7619 },
+ { 36.9914, 9.5238 },
+};
+
+static const StrokeRec char63[] = {
+ { 14, char63_stroke0 },
+ { 5, char63_stroke1 },
+};
+
+/* char: 64 '@' */
+
+static const CoordRec char64_stroke0[] = {
+ { 49.2171, 52.381 },
+ { 39.6933, 57.1429 },
+ { 30.1695, 57.1429 },
+ { 25.4076, 47.619 },
+ { 25.4076, 42.8571 },
+ { 30.1695, 33.3333 },
+ { 39.6933, 33.3333 },
+ { 49.2171, 38.0952 },
+};
+
+static const CoordRec char64_stroke1[] = {
+ { 49.2171, 57.1429 },
+ { 49.2171, 38.0952 },
+ { 53.979, 33.3333 },
+ { 63.5029, 33.3333 },
+ { 68.2648, 42.8571 },
+ { 68.2648, 47.619 },
+ { 63.5029, 61.9048 },
+ { 53.979, 71.4286 },
+ { 39.6933, 76.1905 },
+ { 34.9314, 76.1905 },
+ { 20.6457, 71.4286 },
+ { 11.1219, 61.9048 },
+ { 6.36, 47.619 },
+ { 6.36, 42.8571 },
+ { 11.1219, 28.5714 },
+ { 20.6457, 19.0476 },
+ { 34.9314, 14.2857 },
+ { 39.6933, 14.2857 },
+ { 53.979, 19.0476 },
+};
+
+static const StrokeRec char64[] = {
+ { 8, char64_stroke0 },
+ { 19, char64_stroke1 },
+};
+
+/* char: 65 'A' */
+
+static const CoordRec char65_stroke0[] = {
+ { 40.5952, 100 },
+ { 2.5, 0 },
+};
+
+static const CoordRec char65_stroke1[] = {
+ { 40.5952, 100 },
+ { 78.6905, 0 },
+};
+
+static const CoordRec char65_stroke2[] = {
+ { 16.7857, 33.3333 },
+ { 64.4048, 33.3333 },
+};
+
+static const StrokeRec char65[] = {
+ { 2, char65_stroke0 },
+ { 2, char65_stroke1 },
+ { 2, char65_stroke2 },
+};
+
+/* char: 66 'B' */
+
+static const CoordRec char66_stroke0[] = {
+ { 11.42, 100 },
+ { 11.42, 0 },
+};
+
+static const CoordRec char66_stroke1[] = {
+ { 11.42, 100 },
+ { 54.2771, 100 },
+ { 68.5629, 95.2381 },
+ { 73.3248, 90.4762 },
+ { 78.0867, 80.9524 },
+ { 78.0867, 71.4286 },
+ { 73.3248, 61.9048 },
+ { 68.5629, 57.1429 },
+ { 54.2771, 52.381 },
+};
+
+static const CoordRec char66_stroke2[] = {
+ { 11.42, 52.381 },
+ { 54.2771, 52.381 },
+ { 68.5629, 47.619 },
+ { 73.3248, 42.8571 },
+ { 78.0867, 33.3333 },
+ { 78.0867, 19.0476 },
+ { 73.3248, 9.5238 },
+ { 68.5629, 4.7619 },
+ { 54.2771, 0 },
+ { 11.42, 0 },
+};
+
+static const StrokeRec char66[] = {
+ { 2, char66_stroke0 },
+ { 9, char66_stroke1 },
+ { 10, char66_stroke2 },
+};
+
+/* char: 67 'C' */
+
+static const CoordRec char67_stroke0[] = {
+ { 78.0886, 76.1905 },
+ { 73.3267, 85.7143 },
+ { 63.8029, 95.2381 },
+ { 54.279, 100 },
+ { 35.2314, 100 },
+ { 25.7076, 95.2381 },
+ { 16.1838, 85.7143 },
+ { 11.4219, 76.1905 },
+ { 6.66, 61.9048 },
+ { 6.66, 38.0952 },
+ { 11.4219, 23.8095 },
+ { 16.1838, 14.2857 },
+ { 25.7076, 4.7619 },
+ { 35.2314, 0 },
+ { 54.279, 0 },
+ { 63.8029, 4.7619 },
+ { 73.3267, 14.2857 },
+ { 78.0886, 23.8095 },
+};
+
+static const StrokeRec char67[] = {
+ { 18, char67_stroke0 },
+};
+
+/* char: 68 'D' */
+
+static const CoordRec char68_stroke0[] = {
+ { 11.96, 100 },
+ { 11.96, 0 },
+};
+
+static const CoordRec char68_stroke1[] = {
+ { 11.96, 100 },
+ { 45.2933, 100 },
+ { 59.579, 95.2381 },
+ { 69.1029, 85.7143 },
+ { 73.8648, 76.1905 },
+ { 78.6267, 61.9048 },
+ { 78.6267, 38.0952 },
+ { 73.8648, 23.8095 },
+ { 69.1029, 14.2857 },
+ { 59.579, 4.7619 },
+ { 45.2933, 0 },
+ { 11.96, 0 },
+};
+
+static const StrokeRec char68[] = {
+ { 2, char68_stroke0 },
+ { 12, char68_stroke1 },
+};
+
+/* char: 69 'E' */
+
+static const CoordRec char69_stroke0[] = {
+ { 11.42, 100 },
+ { 11.42, 0 },
+};
+
+static const CoordRec char69_stroke1[] = {
+ { 11.42, 100 },
+ { 73.3248, 100 },
+};
+
+static const CoordRec char69_stroke2[] = {
+ { 11.42, 52.381 },
+ { 49.5152, 52.381 },
+};
+
+static const CoordRec char69_stroke3[] = {
+ { 11.42, 0 },
+ { 73.3248, 0 },
+};
+
+static const StrokeRec char69[] = {
+ { 2, char69_stroke0 },
+ { 2, char69_stroke1 },
+ { 2, char69_stroke2 },
+ { 2, char69_stroke3 },
+};
+
+/* char: 70 'F' */
+
+static const CoordRec char70_stroke0[] = {
+ { 11.42, 100 },
+ { 11.42, 0 },
+};
+
+static const CoordRec char70_stroke1[] = {
+ { 11.42, 100 },
+ { 73.3248, 100 },
+};
+
+static const CoordRec char70_stroke2[] = {
+ { 11.42, 52.381 },
+ { 49.5152, 52.381 },
+};
+
+static const StrokeRec char70[] = {
+ { 2, char70_stroke0 },
+ { 2, char70_stroke1 },
+ { 2, char70_stroke2 },
+};
+
+/* char: 71 'G' */
+
+static const CoordRec char71_stroke0[] = {
+ { 78.4886, 76.1905 },
+ { 73.7267, 85.7143 },
+ { 64.2029, 95.2381 },
+ { 54.679, 100 },
+ { 35.6314, 100 },
+ { 26.1076, 95.2381 },
+ { 16.5838, 85.7143 },
+ { 11.8219, 76.1905 },
+ { 7.06, 61.9048 },
+ { 7.06, 38.0952 },
+ { 11.8219, 23.8095 },
+ { 16.5838, 14.2857 },
+ { 26.1076, 4.7619 },
+ { 35.6314, 0 },
+ { 54.679, 0 },
+ { 64.2029, 4.7619 },
+ { 73.7267, 14.2857 },
+ { 78.4886, 23.8095 },
+ { 78.4886, 38.0952 },
+};
+
+static const CoordRec char71_stroke1[] = {
+ { 54.679, 38.0952 },
+ { 78.4886, 38.0952 },
+};
+
+static const StrokeRec char71[] = {
+ { 19, char71_stroke0 },
+ { 2, char71_stroke1 },
+};
+
+/* char: 72 'H' */
+
+static const CoordRec char72_stroke0[] = {
+ { 11.42, 100 },
+ { 11.42, 0 },
+};
+
+static const CoordRec char72_stroke1[] = {
+ { 78.0867, 100 },
+ { 78.0867, 0 },
+};
+
+static const CoordRec char72_stroke2[] = {
+ { 11.42, 52.381 },
+ { 78.0867, 52.381 },
+};
+
+static const StrokeRec char72[] = {
+ { 2, char72_stroke0 },
+ { 2, char72_stroke1 },
+ { 2, char72_stroke2 },
+};
+
+/* char: 73 'I' */
+
+static const CoordRec char73_stroke0[] = {
+ { 10.86, 100 },
+ { 10.86, 0 },
+};
+
+static const StrokeRec char73[] = {
+ { 2, char73_stroke0 },
+};
+
+/* char: 74 'J' */
+
+static const CoordRec char74_stroke0[] = {
+ { 50.119, 100 },
+ { 50.119, 23.8095 },
+ { 45.3571, 9.5238 },
+ { 40.5952, 4.7619 },
+ { 31.0714, 0 },
+ { 21.5476, 0 },
+ { 12.0238, 4.7619 },
+ { 7.2619, 9.5238 },
+ { 2.5, 23.8095 },
+ { 2.5, 33.3333 },
+};
+
+static const StrokeRec char74[] = {
+ { 10, char74_stroke0 },
+};
+
+/* char: 75 'K' */
+
+static const CoordRec char75_stroke0[] = {
+ { 11.28, 100 },
+ { 11.28, 0 },
+};
+
+static const CoordRec char75_stroke1[] = {
+ { 77.9467, 100 },
+ { 11.28, 33.3333 },
+};
+
+static const CoordRec char75_stroke2[] = {
+ { 35.0895, 57.1429 },
+ { 77.9467, 0 },
+};
+
+static const StrokeRec char75[] = {
+ { 2, char75_stroke0 },
+ { 2, char75_stroke1 },
+ { 2, char75_stroke2 },
+};
+
+/* char: 76 'L' */
+
+static const CoordRec char76_stroke0[] = {
+ { 11.68, 100 },
+ { 11.68, 0 },
+};
+
+static const CoordRec char76_stroke1[] = {
+ { 11.68, 0 },
+ { 68.8229, 0 },
+};
+
+static const StrokeRec char76[] = {
+ { 2, char76_stroke0 },
+ { 2, char76_stroke1 },
+};
+
+/* char: 77 'M' */
+
+static const CoordRec char77_stroke0[] = {
+ { 10.86, 100 },
+ { 10.86, 0 },
+};
+
+static const CoordRec char77_stroke1[] = {
+ { 10.86, 100 },
+ { 48.9552, 0 },
+};
+
+static const CoordRec char77_stroke2[] = {
+ { 87.0505, 100 },
+ { 48.9552, 0 },
+};
+
+static const CoordRec char77_stroke3[] = {
+ { 87.0505, 100 },
+ { 87.0505, 0 },
+};
+
+static const StrokeRec char77[] = {
+ { 2, char77_stroke0 },
+ { 2, char77_stroke1 },
+ { 2, char77_stroke2 },
+ { 2, char77_stroke3 },
+};
+
+/* char: 78 'N' */
+
+static const CoordRec char78_stroke0[] = {
+ { 11.14, 100 },
+ { 11.14, 0 },
+};
+
+static const CoordRec char78_stroke1[] = {
+ { 11.14, 100 },
+ { 77.8067, 0 },
+};
+
+static const CoordRec char78_stroke2[] = {
+ { 77.8067, 100 },
+ { 77.8067, 0 },
+};
+
+static const StrokeRec char78[] = {
+ { 2, char78_stroke0 },
+ { 2, char78_stroke1 },
+ { 2, char78_stroke2 },
+};
+
+/* char: 79 'O' */
+
+static const CoordRec char79_stroke0[] = {
+ { 34.8114, 100 },
+ { 25.2876, 95.2381 },
+ { 15.7638, 85.7143 },
+ { 11.0019, 76.1905 },
+ { 6.24, 61.9048 },
+ { 6.24, 38.0952 },
+ { 11.0019, 23.8095 },
+ { 15.7638, 14.2857 },
+ { 25.2876, 4.7619 },
+ { 34.8114, 0 },
+ { 53.859, 0 },
+ { 63.3829, 4.7619 },
+ { 72.9067, 14.2857 },
+ { 77.6686, 23.8095 },
+ { 82.4305, 38.0952 },
+ { 82.4305, 61.9048 },
+ { 77.6686, 76.1905 },
+ { 72.9067, 85.7143 },
+ { 63.3829, 95.2381 },
+ { 53.859, 100 },
+ { 34.8114, 100 },
+};
+
+static const StrokeRec char79[] = {
+ { 21, char79_stroke0 },
+};
+
+/* char: 80 'P' */
+
+static const CoordRec char80_stroke0[] = {
+ { 12.1, 100 },
+ { 12.1, 0 },
+};
+
+static const CoordRec char80_stroke1[] = {
+ { 12.1, 100 },
+ { 54.9571, 100 },
+ { 69.2429, 95.2381 },
+ { 74.0048, 90.4762 },
+ { 78.7667, 80.9524 },
+ { 78.7667, 66.6667 },
+ { 74.0048, 57.1429 },
+ { 69.2429, 52.381 },
+ { 54.9571, 47.619 },
+ { 12.1, 47.619 },
+};
+
+static const StrokeRec char80[] = {
+ { 2, char80_stroke0 },
+ { 10, char80_stroke1 },
+};
+
+/* char: 81 'Q' */
+
+static const CoordRec char81_stroke0[] = {
+ { 33.8714, 100 },
+ { 24.3476, 95.2381 },
+ { 14.8238, 85.7143 },
+ { 10.0619, 76.1905 },
+ { 5.3, 61.9048 },
+ { 5.3, 38.0952 },
+ { 10.0619, 23.8095 },
+ { 14.8238, 14.2857 },
+ { 24.3476, 4.7619 },
+ { 33.8714, 0 },
+ { 52.919, 0 },
+ { 62.4429, 4.7619 },
+ { 71.9667, 14.2857 },
+ { 76.7286, 23.8095 },
+ { 81.4905, 38.0952 },
+ { 81.4905, 61.9048 },
+ { 76.7286, 76.1905 },
+ { 71.9667, 85.7143 },
+ { 62.4429, 95.2381 },
+ { 52.919, 100 },
+ { 33.8714, 100 },
+};
+
+static const CoordRec char81_stroke1[] = {
+ { 48.1571, 19.0476 },
+ { 76.7286, -9.5238 },
+};
+
+static const StrokeRec char81[] = {
+ { 21, char81_stroke0 },
+ { 2, char81_stroke1 },
+};
+
+/* char: 82 'R' */
+
+static const CoordRec char82_stroke0[] = {
+ { 11.68, 100 },
+ { 11.68, 0 },
+};
+
+static const CoordRec char82_stroke1[] = {
+ { 11.68, 100 },
+ { 54.5371, 100 },
+ { 68.8229, 95.2381 },
+ { 73.5848, 90.4762 },
+ { 78.3467, 80.9524 },
+ { 78.3467, 71.4286 },
+ { 73.5848, 61.9048 },
+ { 68.8229, 57.1429 },
+ { 54.5371, 52.381 },
+ { 11.68, 52.381 },
+};
+
+static const CoordRec char82_stroke2[] = {
+ { 45.0133, 52.381 },
+ { 78.3467, 0 },
+};
+
+static const StrokeRec char82[] = {
+ { 2, char82_stroke0 },
+ { 10, char82_stroke1 },
+ { 2, char82_stroke2 },
+};
+
+/* char: 83 'S' */
+
+static const CoordRec char83_stroke0[] = {
+ { 74.6667, 85.7143 },
+ { 65.1429, 95.2381 },
+ { 50.8571, 100 },
+ { 31.8095, 100 },
+ { 17.5238, 95.2381 },
+ { 8, 85.7143 },
+ { 8, 76.1905 },
+ { 12.7619, 66.6667 },
+ { 17.5238, 61.9048 },
+ { 27.0476, 57.1429 },
+ { 55.619, 47.619 },
+ { 65.1429, 42.8571 },
+ { 69.9048, 38.0952 },
+ { 74.6667, 28.5714 },
+ { 74.6667, 14.2857 },
+ { 65.1429, 4.7619 },
+ { 50.8571, 0 },
+ { 31.8095, 0 },
+ { 17.5238, 4.7619 },
+ { 8, 14.2857 },
+};
+
+static const StrokeRec char83[] = {
+ { 20, char83_stroke0 },
+};
+
+/* char: 84 'T' */
+
+static const CoordRec char84_stroke0[] = {
+ { 35.6933, 100 },
+ { 35.6933, 0 },
+};
+
+static const CoordRec char84_stroke1[] = {
+ { 2.36, 100 },
+ { 69.0267, 100 },
+};
+
+static const StrokeRec char84[] = {
+ { 2, char84_stroke0 },
+ { 2, char84_stroke1 },
+};
+
+/* char: 85 'U' */
+
+static const CoordRec char85_stroke0[] = {
+ { 11.54, 100 },
+ { 11.54, 28.5714 },
+ { 16.3019, 14.2857 },
+ { 25.8257, 4.7619 },
+ { 40.1114, 0 },
+ { 49.6352, 0 },
+ { 63.921, 4.7619 },
+ { 73.4448, 14.2857 },
+ { 78.2067, 28.5714 },
+ { 78.2067, 100 },
+};
+
+static const StrokeRec char85[] = {
+ { 10, char85_stroke0 },
+};
+
+/* char: 86 'V' */
+
+static const CoordRec char86_stroke0[] = {
+ { 2.36, 100 },
+ { 40.4552, 0 },
+};
+
+static const CoordRec char86_stroke1[] = {
+ { 78.5505, 100 },
+ { 40.4552, 0 },
+};
+
+static const StrokeRec char86[] = {
+ { 2, char86_stroke0 },
+ { 2, char86_stroke1 },
+};
+
+/* char: 87 'W' */
+
+static const CoordRec char87_stroke0[] = {
+ { 2.22, 100 },
+ { 26.0295, 0 },
+};
+
+static const CoordRec char87_stroke1[] = {
+ { 49.839, 100 },
+ { 26.0295, 0 },
+};
+
+static const CoordRec char87_stroke2[] = {
+ { 49.839, 100 },
+ { 73.6486, 0 },
+};
+
+static const CoordRec char87_stroke3[] = {
+ { 97.4581, 100 },
+ { 73.6486, 0 },
+};
+
+static const StrokeRec char87[] = {
+ { 2, char87_stroke0 },
+ { 2, char87_stroke1 },
+ { 2, char87_stroke2 },
+ { 2, char87_stroke3 },
+};
+
+/* char: 88 'X' */
+
+static const CoordRec char88_stroke0[] = {
+ { 2.5, 100 },
+ { 69.1667, 0 },
+};
+
+static const CoordRec char88_stroke1[] = {
+ { 69.1667, 100 },
+ { 2.5, 0 },
+};
+
+static const StrokeRec char88[] = {
+ { 2, char88_stroke0 },
+ { 2, char88_stroke1 },
+};
+
+/* char: 89 'Y' */
+
+static const CoordRec char89_stroke0[] = {
+ { 1.52, 100 },
+ { 39.6152, 52.381 },
+ { 39.6152, 0 },
+};
+
+static const CoordRec char89_stroke1[] = {
+ { 77.7105, 100 },
+ { 39.6152, 52.381 },
+};
+
+static const StrokeRec char89[] = {
+ { 3, char89_stroke0 },
+ { 2, char89_stroke1 },
+};
+
+/* char: 90 'Z' */
+
+static const CoordRec char90_stroke0[] = {
+ { 69.1667, 100 },
+ { 2.5, 0 },
+};
+
+static const CoordRec char90_stroke1[] = {
+ { 2.5, 100 },
+ { 69.1667, 100 },
+};
+
+static const CoordRec char90_stroke2[] = {
+ { 2.5, 0 },
+ { 69.1667, 0 },
+};
+
+static const StrokeRec char90[] = {
+ { 2, char90_stroke0 },
+ { 2, char90_stroke1 },
+ { 2, char90_stroke2 },
+};
+
+/* char: 91 '[' */
+
+static const CoordRec char91_stroke0[] = {
+ { 7.78, 119.048 },
+ { 7.78, -33.3333 },
+};
+
+static const CoordRec char91_stroke1[] = {
+ { 12.5419, 119.048 },
+ { 12.5419, -33.3333 },
+};
+
+static const CoordRec char91_stroke2[] = {
+ { 7.78, 119.048 },
+ { 41.1133, 119.048 },
+};
+
+static const CoordRec char91_stroke3[] = {
+ { 7.78, -33.3333 },
+ { 41.1133, -33.3333 },
+};
+
+static const StrokeRec char91[] = {
+ { 2, char91_stroke0 },
+ { 2, char91_stroke1 },
+ { 2, char91_stroke2 },
+ { 2, char91_stroke3 },
+};
+
+/* char: 92 '\' */
+
+static const CoordRec char92_stroke0[] = {
+ { 5.84, 100 },
+ { 72.5067, -14.2857 },
+};
+
+static const StrokeRec char92[] = {
+ { 2, char92_stroke0 },
+};
+
+/* char: 93 ']' */
+
+static const CoordRec char93_stroke0[] = {
+ { 33.0114, 119.048 },
+ { 33.0114, -33.3333 },
+};
+
+static const CoordRec char93_stroke1[] = {
+ { 37.7733, 119.048 },
+ { 37.7733, -33.3333 },
+};
+
+static const CoordRec char93_stroke2[] = {
+ { 4.44, 119.048 },
+ { 37.7733, 119.048 },
+};
+
+static const CoordRec char93_stroke3[] = {
+ { 4.44, -33.3333 },
+ { 37.7733, -33.3333 },
+};
+
+static const StrokeRec char93[] = {
+ { 2, char93_stroke0 },
+ { 2, char93_stroke1 },
+ { 2, char93_stroke2 },
+ { 2, char93_stroke3 },
+};
+
+/* char: 94 '^' */
+
+static const CoordRec char94_stroke0[] = {
+ { 44.0752, 109.524 },
+ { 5.98, 42.8571 },
+};
+
+static const CoordRec char94_stroke1[] = {
+ { 44.0752, 109.524 },
+ { 82.1705, 42.8571 },
+};
+
+static const StrokeRec char94[] = {
+ { 2, char94_stroke0 },
+ { 2, char94_stroke1 },
+};
+
+/* char: 95 '_' */
+
+static const CoordRec char95_stroke0[] = {
+ { -1.1, -33.3333 },
+ { 103.662, -33.3333 },
+ { 103.662, -28.5714 },
+ { -1.1, -28.5714 },
+ { -1.1, -33.3333 },
+};
+
+static const StrokeRec char95[] = {
+ { 5, char95_stroke0 },
+};
+
+/* char: 96 '`' */
+
+static const CoordRec char96_stroke0[] = {
+ { 33.0219, 100 },
+ { 56.8314, 71.4286 },
+};
+
+static const CoordRec char96_stroke1[] = {
+ { 33.0219, 100 },
+ { 28.26, 95.2381 },
+ { 56.8314, 71.4286 },
+};
+
+static const StrokeRec char96[] = {
+ { 2, char96_stroke0 },
+ { 3, char96_stroke1 },
+};
+
+/* char: 97 'a' */
+
+static const CoordRec char97_stroke0[] = {
+ { 63.8229, 66.6667 },
+ { 63.8229, 0 },
+};
+
+static const CoordRec char97_stroke1[] = {
+ { 63.8229, 52.381 },
+ { 54.299, 61.9048 },
+ { 44.7752, 66.6667 },
+ { 30.4895, 66.6667 },
+ { 20.9657, 61.9048 },
+ { 11.4419, 52.381 },
+ { 6.68, 38.0952 },
+ { 6.68, 28.5714 },
+ { 11.4419, 14.2857 },
+ { 20.9657, 4.7619 },
+ { 30.4895, 0 },
+ { 44.7752, 0 },
+ { 54.299, 4.7619 },
+ { 63.8229, 14.2857 },
+};
+
+static const StrokeRec char97[] = {
+ { 2, char97_stroke0 },
+ { 14, char97_stroke1 },
+};
+
+/* char: 98 'b' */
+
+static const CoordRec char98_stroke0[] = {
+ { 8.76, 100 },
+ { 8.76, 0 },
+};
+
+static const CoordRec char98_stroke1[] = {
+ { 8.76, 52.381 },
+ { 18.2838, 61.9048 },
+ { 27.8076, 66.6667 },
+ { 42.0933, 66.6667 },
+ { 51.6171, 61.9048 },
+ { 61.141, 52.381 },
+ { 65.9029, 38.0952 },
+ { 65.9029, 28.5714 },
+ { 61.141, 14.2857 },
+ { 51.6171, 4.7619 },
+ { 42.0933, 0 },
+ { 27.8076, 0 },
+ { 18.2838, 4.7619 },
+ { 8.76, 14.2857 },
+};
+
+static const StrokeRec char98[] = {
+ { 2, char98_stroke0 },
+ { 14, char98_stroke1 },
+};
+
+/* char: 99 'c' */
+
+static const CoordRec char99_stroke0[] = {
+ { 62.6629, 52.381 },
+ { 53.139, 61.9048 },
+ { 43.6152, 66.6667 },
+ { 29.3295, 66.6667 },
+ { 19.8057, 61.9048 },
+ { 10.2819, 52.381 },
+ { 5.52, 38.0952 },
+ { 5.52, 28.5714 },
+ { 10.2819, 14.2857 },
+ { 19.8057, 4.7619 },
+ { 29.3295, 0 },
+ { 43.6152, 0 },
+ { 53.139, 4.7619 },
+ { 62.6629, 14.2857 },
+};
+
+static const StrokeRec char99[] = {
+ { 14, char99_stroke0 },
+};
+
+/* char: 100 'd' */
+
+static const CoordRec char100_stroke0[] = {
+ { 61.7829, 100 },
+ { 61.7829, 0 },
+};
+
+static const CoordRec char100_stroke1[] = {
+ { 61.7829, 52.381 },
+ { 52.259, 61.9048 },
+ { 42.7352, 66.6667 },
+ { 28.4495, 66.6667 },
+ { 18.9257, 61.9048 },
+ { 9.4019, 52.381 },
+ { 4.64, 38.0952 },
+ { 4.64, 28.5714 },
+ { 9.4019, 14.2857 },
+ { 18.9257, 4.7619 },
+ { 28.4495, 0 },
+ { 42.7352, 0 },
+ { 52.259, 4.7619 },
+ { 61.7829, 14.2857 },
+};
+
+static const StrokeRec char100[] = {
+ { 2, char100_stroke0 },
+ { 14, char100_stroke1 },
+};
+
+/* char: 101 'e' */
+
+static const CoordRec char101_stroke0[] = {
+ { 5.72, 38.0952 },
+ { 62.8629, 38.0952 },
+ { 62.8629, 47.619 },
+ { 58.101, 57.1429 },
+ { 53.339, 61.9048 },
+ { 43.8152, 66.6667 },
+ { 29.5295, 66.6667 },
+ { 20.0057, 61.9048 },
+ { 10.4819, 52.381 },
+ { 5.72, 38.0952 },
+ { 5.72, 28.5714 },
+ { 10.4819, 14.2857 },
+ { 20.0057, 4.7619 },
+ { 29.5295, 0 },
+ { 43.8152, 0 },
+ { 53.339, 4.7619 },
+ { 62.8629, 14.2857 },
+};
+
+static const StrokeRec char101[] = {
+ { 17, char101_stroke0 },
+};
+
+/* char: 102 'f' */
+
+static const CoordRec char102_stroke0[] = {
+ { 38.7752, 100 },
+ { 29.2514, 100 },
+ { 19.7276, 95.2381 },
+ { 14.9657, 80.9524 },
+ { 14.9657, 0 },
+};
+
+static const CoordRec char102_stroke1[] = {
+ { 0.68, 66.6667 },
+ { 34.0133, 66.6667 },
+};
+
+static const StrokeRec char102[] = {
+ { 5, char102_stroke0 },
+ { 2, char102_stroke1 },
+};
+
+/* char: 103 'g' */
+
+static const CoordRec char103_stroke0[] = {
+ { 62.5029, 66.6667 },
+ { 62.5029, -9.5238 },
+ { 57.741, -23.8095 },
+ { 52.979, -28.5714 },
+ { 43.4552, -33.3333 },
+ { 29.1695, -33.3333 },
+ { 19.6457, -28.5714 },
+};
+
+static const CoordRec char103_stroke1[] = {
+ { 62.5029, 52.381 },
+ { 52.979, 61.9048 },
+ { 43.4552, 66.6667 },
+ { 29.1695, 66.6667 },
+ { 19.6457, 61.9048 },
+ { 10.1219, 52.381 },
+ { 5.36, 38.0952 },
+ { 5.36, 28.5714 },
+ { 10.1219, 14.2857 },
+ { 19.6457, 4.7619 },
+ { 29.1695, 0 },
+ { 43.4552, 0 },
+ { 52.979, 4.7619 },
+ { 62.5029, 14.2857 },
+};
+
+static const StrokeRec char103[] = {
+ { 7, char103_stroke0 },
+ { 14, char103_stroke1 },
+};
+
+/* char: 104 'h' */
+
+static const CoordRec char104_stroke0[] = {
+ { 9.6, 100 },
+ { 9.6, 0 },
+};
+
+static const CoordRec char104_stroke1[] = {
+ { 9.6, 47.619 },
+ { 23.8857, 61.9048 },
+ { 33.4095, 66.6667 },
+ { 47.6952, 66.6667 },
+ { 57.219, 61.9048 },
+ { 61.981, 47.619 },
+ { 61.981, 0 },
+};
+
+static const StrokeRec char104[] = {
+ { 2, char104_stroke0 },
+ { 7, char104_stroke1 },
+};
+
+/* char: 105 'i' */
+
+static const CoordRec char105_stroke0[] = {
+ { 10.02, 100 },
+ { 14.7819, 95.2381 },
+ { 19.5438, 100 },
+ { 14.7819, 104.762 },
+ { 10.02, 100 },
+};
+
+static const CoordRec char105_stroke1[] = {
+ { 14.7819, 66.6667 },
+ { 14.7819, 0 },
+};
+
+static const StrokeRec char105[] = {
+ { 5, char105_stroke0 },
+ { 2, char105_stroke1 },
+};
+
+/* char: 106 'j' */
+
+static const CoordRec char106_stroke0[] = {
+ { 17.3876, 100 },
+ { 22.1495, 95.2381 },
+ { 26.9114, 100 },
+ { 22.1495, 104.762 },
+ { 17.3876, 100 },
+};
+
+static const CoordRec char106_stroke1[] = {
+ { 22.1495, 66.6667 },
+ { 22.1495, -14.2857 },
+ { 17.3876, -28.5714 },
+ { 7.8638, -33.3333 },
+ { -1.66, -33.3333 },
+};
+
+static const StrokeRec char106[] = {
+ { 5, char106_stroke0 },
+ { 5, char106_stroke1 },
+};
+
+/* char: 107 'k' */
+
+static const CoordRec char107_stroke0[] = {
+ { 9.6, 100 },
+ { 9.6, 0 },
+};
+
+static const CoordRec char107_stroke1[] = {
+ { 57.219, 66.6667 },
+ { 9.6, 19.0476 },
+};
+
+static const CoordRec char107_stroke2[] = {
+ { 28.6476, 38.0952 },
+ { 61.981, 0 },
+};
+
+static const StrokeRec char107[] = {
+ { 2, char107_stroke0 },
+ { 2, char107_stroke1 },
+ { 2, char107_stroke2 },
+};
+
+/* char: 108 'l' */
+
+static const CoordRec char108_stroke0[] = {
+ { 10.02, 100 },
+ { 10.02, 0 },
+};
+
+static const StrokeRec char108[] = {
+ { 2, char108_stroke0 },
+};
+
+/* char: 109 'm' */
+
+static const CoordRec char109_stroke0[] = {
+ { 9.6, 66.6667 },
+ { 9.6, 0 },
+};
+
+static const CoordRec char109_stroke1[] = {
+ { 9.6, 47.619 },
+ { 23.8857, 61.9048 },
+ { 33.4095, 66.6667 },
+ { 47.6952, 66.6667 },
+ { 57.219, 61.9048 },
+ { 61.981, 47.619 },
+ { 61.981, 0 },
+};
+
+static const CoordRec char109_stroke2[] = {
+ { 61.981, 47.619 },
+ { 76.2667, 61.9048 },
+ { 85.7905, 66.6667 },
+ { 100.076, 66.6667 },
+ { 109.6, 61.9048 },
+ { 114.362, 47.619 },
+ { 114.362, 0 },
+};
+
+static const StrokeRec char109[] = {
+ { 2, char109_stroke0 },
+ { 7, char109_stroke1 },
+ { 7, char109_stroke2 },
+};
+
+/* char: 110 'n' */
+
+static const CoordRec char110_stroke0[] = {
+ { 9.18, 66.6667 },
+ { 9.18, 0 },
+};
+
+static const CoordRec char110_stroke1[] = {
+ { 9.18, 47.619 },
+ { 23.4657, 61.9048 },
+ { 32.9895, 66.6667 },
+ { 47.2752, 66.6667 },
+ { 56.799, 61.9048 },
+ { 61.561, 47.619 },
+ { 61.561, 0 },
+};
+
+static const StrokeRec char110[] = {
+ { 2, char110_stroke0 },
+ { 7, char110_stroke1 },
+};
+
+/* char: 111 'o' */
+
+static const CoordRec char111_stroke0[] = {
+ { 28.7895, 66.6667 },
+ { 19.2657, 61.9048 },
+ { 9.7419, 52.381 },
+ { 4.98, 38.0952 },
+ { 4.98, 28.5714 },
+ { 9.7419, 14.2857 },
+ { 19.2657, 4.7619 },
+ { 28.7895, 0 },
+ { 43.0752, 0 },
+ { 52.599, 4.7619 },
+ { 62.1229, 14.2857 },
+ { 66.8848, 28.5714 },
+ { 66.8848, 38.0952 },
+ { 62.1229, 52.381 },
+ { 52.599, 61.9048 },
+ { 43.0752, 66.6667 },
+ { 28.7895, 66.6667 },
+};
+
+static const StrokeRec char111[] = {
+ { 17, char111_stroke0 },
+};
+
+/* char: 112 'p' */
+
+static const CoordRec char112_stroke0[] = {
+ { 9.46, 66.6667 },
+ { 9.46, -33.3333 },
+};
+
+static const CoordRec char112_stroke1[] = {
+ { 9.46, 52.381 },
+ { 18.9838, 61.9048 },
+ { 28.5076, 66.6667 },
+ { 42.7933, 66.6667 },
+ { 52.3171, 61.9048 },
+ { 61.841, 52.381 },
+ { 66.6029, 38.0952 },
+ { 66.6029, 28.5714 },
+ { 61.841, 14.2857 },
+ { 52.3171, 4.7619 },
+ { 42.7933, 0 },
+ { 28.5076, 0 },
+ { 18.9838, 4.7619 },
+ { 9.46, 14.2857 },
+};
+
+static const StrokeRec char112[] = {
+ { 2, char112_stroke0 },
+ { 14, char112_stroke1 },
+};
+
+/* char: 113 'q' */
+
+static const CoordRec char113_stroke0[] = {
+ { 61.9829, 66.6667 },
+ { 61.9829, -33.3333 },
+};
+
+static const CoordRec char113_stroke1[] = {
+ { 61.9829, 52.381 },
+ { 52.459, 61.9048 },
+ { 42.9352, 66.6667 },
+ { 28.6495, 66.6667 },
+ { 19.1257, 61.9048 },
+ { 9.6019, 52.381 },
+ { 4.84, 38.0952 },
+ { 4.84, 28.5714 },
+ { 9.6019, 14.2857 },
+ { 19.1257, 4.7619 },
+ { 28.6495, 0 },
+ { 42.9352, 0 },
+ { 52.459, 4.7619 },
+ { 61.9829, 14.2857 },
+};
+
+static const StrokeRec char113[] = {
+ { 2, char113_stroke0 },
+ { 14, char113_stroke1 },
+};
+
+/* char: 114 'r' */
+
+static const CoordRec char114_stroke0[] = {
+ { 9.46, 66.6667 },
+ { 9.46, 0 },
+};
+
+static const CoordRec char114_stroke1[] = {
+ { 9.46, 38.0952 },
+ { 14.2219, 52.381 },
+ { 23.7457, 61.9048 },
+ { 33.2695, 66.6667 },
+ { 47.5552, 66.6667 },
+};
+
+static const StrokeRec char114[] = {
+ { 2, char114_stroke0 },
+ { 5, char114_stroke1 },
+};
+
+/* char: 115 's' */
+
+static const CoordRec char115_stroke0[] = {
+ { 57.081, 52.381 },
+ { 52.319, 61.9048 },
+ { 38.0333, 66.6667 },
+ { 23.7476, 66.6667 },
+ { 9.4619, 61.9048 },
+ { 4.7, 52.381 },
+ { 9.4619, 42.8571 },
+ { 18.9857, 38.0952 },
+ { 42.7952, 33.3333 },
+ { 52.319, 28.5714 },
+ { 57.081, 19.0476 },
+ { 57.081, 14.2857 },
+ { 52.319, 4.7619 },
+ { 38.0333, 0 },
+ { 23.7476, 0 },
+ { 9.4619, 4.7619 },
+ { 4.7, 14.2857 },
+};
+
+static const StrokeRec char115[] = {
+ { 17, char115_stroke0 },
+};
+
+/* char: 116 't' */
+
+static const CoordRec char116_stroke0[] = {
+ { 14.8257, 100 },
+ { 14.8257, 19.0476 },
+ { 19.5876, 4.7619 },
+ { 29.1114, 0 },
+ { 38.6352, 0 },
+};
+
+static const CoordRec char116_stroke1[] = {
+ { 0.54, 66.6667 },
+ { 33.8733, 66.6667 },
+};
+
+static const StrokeRec char116[] = {
+ { 5, char116_stroke0 },
+ { 2, char116_stroke1 },
+};
+
+/* char: 117 'u' */
+
+static const CoordRec char117_stroke0[] = {
+ { 9.46, 66.6667 },
+ { 9.46, 19.0476 },
+ { 14.2219, 4.7619 },
+ { 23.7457, 0 },
+ { 38.0314, 0 },
+ { 47.5552, 4.7619 },
+ { 61.841, 19.0476 },
+};
+
+static const CoordRec char117_stroke1[] = {
+ { 61.841, 66.6667 },
+ { 61.841, 0 },
+};
+
+static const StrokeRec char117[] = {
+ { 7, char117_stroke0 },
+ { 2, char117_stroke1 },
+};
+
+/* char: 118 'v' */
+
+static const CoordRec char118_stroke0[] = {
+ { 1.8, 66.6667 },
+ { 30.3714, 0 },
+};
+
+static const CoordRec char118_stroke1[] = {
+ { 58.9429, 66.6667 },
+ { 30.3714, 0 },
+};
+
+static const StrokeRec char118[] = {
+ { 2, char118_stroke0 },
+ { 2, char118_stroke1 },
+};
+
+/* char: 119 'w' */
+
+static const CoordRec char119_stroke0[] = {
+ { 2.5, 66.6667 },
+ { 21.5476, 0 },
+};
+
+static const CoordRec char119_stroke1[] = {
+ { 40.5952, 66.6667 },
+ { 21.5476, 0 },
+};
+
+static const CoordRec char119_stroke2[] = {
+ { 40.5952, 66.6667 },
+ { 59.6429, 0 },
+};
+
+static const CoordRec char119_stroke3[] = {
+ { 78.6905, 66.6667 },
+ { 59.6429, 0 },
+};
+
+static const StrokeRec char119[] = {
+ { 2, char119_stroke0 },
+ { 2, char119_stroke1 },
+ { 2, char119_stroke2 },
+ { 2, char119_stroke3 },
+};
+
+/* char: 120 'x' */
+
+static const CoordRec char120_stroke0[] = {
+ { 1.66, 66.6667 },
+ { 54.041, 0 },
+};
+
+static const CoordRec char120_stroke1[] = {
+ { 54.041, 66.6667 },
+ { 1.66, 0 },
+};
+
+static const StrokeRec char120[] = {
+ { 2, char120_stroke0 },
+ { 2, char120_stroke1 },
+};
+
+/* char: 121 'y' */
+
+static const CoordRec char121_stroke0[] = {
+ { 6.5619, 66.6667 },
+ { 35.1333, 0 },
+};
+
+static const CoordRec char121_stroke1[] = {
+ { 63.7048, 66.6667 },
+ { 35.1333, 0 },
+ { 25.6095, -19.0476 },
+ { 16.0857, -28.5714 },
+ { 6.5619, -33.3333 },
+ { 1.8, -33.3333 },
+};
+
+static const StrokeRec char121[] = {
+ { 2, char121_stroke0 },
+ { 6, char121_stroke1 },
+};
+
+/* char: 122 'z' */
+
+static const CoordRec char122_stroke0[] = {
+ { 56.821, 66.6667 },
+ { 4.44, 0 },
+};
+
+static const CoordRec char122_stroke1[] = {
+ { 4.44, 66.6667 },
+ { 56.821, 66.6667 },
+};
+
+static const CoordRec char122_stroke2[] = {
+ { 4.44, 0 },
+ { 56.821, 0 },
+};
+
+static const StrokeRec char122[] = {
+ { 2, char122_stroke0 },
+ { 2, char122_stroke1 },
+ { 2, char122_stroke2 },
+};
+
+/* char: 123 '{' */
+
+static const CoordRec char123_stroke0[] = {
+ { 31.1895, 119.048 },
+ { 21.6657, 114.286 },
+ { 16.9038, 109.524 },
+ { 12.1419, 100 },
+ { 12.1419, 90.4762 },
+ { 16.9038, 80.9524 },
+ { 21.6657, 76.1905 },
+ { 26.4276, 66.6667 },
+ { 26.4276, 57.1429 },
+ { 16.9038, 47.619 },
+};
+
+static const CoordRec char123_stroke1[] = {
+ { 21.6657, 114.286 },
+ { 16.9038, 104.762 },
+ { 16.9038, 95.2381 },
+ { 21.6657, 85.7143 },
+ { 26.4276, 80.9524 },
+ { 31.1895, 71.4286 },
+ { 31.1895, 61.9048 },
+ { 26.4276, 52.381 },
+ { 7.38, 42.8571 },
+ { 26.4276, 33.3333 },
+ { 31.1895, 23.8095 },
+ { 31.1895, 14.2857 },
+ { 26.4276, 4.7619 },
+ { 21.6657, 0 },
+ { 16.9038, -9.5238 },
+ { 16.9038, -19.0476 },
+ { 21.6657, -28.5714 },
+};
+
+static const CoordRec char123_stroke2[] = {
+ { 16.9038, 38.0952 },
+ { 26.4276, 28.5714 },
+ { 26.4276, 19.0476 },
+ { 21.6657, 9.5238 },
+ { 16.9038, 4.7619 },
+ { 12.1419, -4.7619 },
+ { 12.1419, -14.2857 },
+ { 16.9038, -23.8095 },
+ { 21.6657, -28.5714 },
+ { 31.1895, -33.3333 },
+};
+
+static const StrokeRec char123[] = {
+ { 10, char123_stroke0 },
+ { 17, char123_stroke1 },
+ { 10, char123_stroke2 },
+};
+
+/* char: 124 '|' */
+
+static const CoordRec char124_stroke0[] = {
+ { 11.54, 119.048 },
+ { 11.54, -33.3333 },
+};
+
+static const StrokeRec char124[] = {
+ { 2, char124_stroke0 },
+};
+
+/* char: 125 '}' */
+
+static const CoordRec char125_stroke0[] = {
+ { 9.18, 119.048 },
+ { 18.7038, 114.286 },
+ { 23.4657, 109.524 },
+ { 28.2276, 100 },
+ { 28.2276, 90.4762 },
+ { 23.4657, 80.9524 },
+ { 18.7038, 76.1905 },
+ { 13.9419, 66.6667 },
+ { 13.9419, 57.1429 },
+ { 23.4657, 47.619 },
+};
+
+static const CoordRec char125_stroke1[] = {
+ { 18.7038, 114.286 },
+ { 23.4657, 104.762 },
+ { 23.4657, 95.2381 },
+ { 18.7038, 85.7143 },
+ { 13.9419, 80.9524 },
+ { 9.18, 71.4286 },
+ { 9.18, 61.9048 },
+ { 13.9419, 52.381 },
+ { 32.9895, 42.8571 },
+ { 13.9419, 33.3333 },
+ { 9.18, 23.8095 },
+ { 9.18, 14.2857 },
+ { 13.9419, 4.7619 },
+ { 18.7038, 0 },
+ { 23.4657, -9.5238 },
+ { 23.4657, -19.0476 },
+ { 18.7038, -28.5714 },
+};
+
+static const CoordRec char125_stroke2[] = {
+ { 23.4657, 38.0952 },
+ { 13.9419, 28.5714 },
+ { 13.9419, 19.0476 },
+ { 18.7038, 9.5238 },
+ { 23.4657, 4.7619 },
+ { 28.2276, -4.7619 },
+ { 28.2276, -14.2857 },
+ { 23.4657, -23.8095 },
+ { 18.7038, -28.5714 },
+ { 9.18, -33.3333 },
+};
+
+static const StrokeRec char125[] = {
+ { 10, char125_stroke0 },
+ { 17, char125_stroke1 },
+ { 10, char125_stroke2 },
+};
+
+/* char: 126 '~' */
+
+static const CoordRec char126_stroke0[] = {
+ { 2.92, 28.5714 },
+ { 2.92, 38.0952 },
+ { 7.6819, 52.381 },
+ { 17.2057, 57.1429 },
+ { 26.7295, 57.1429 },
+ { 36.2533, 52.381 },
+ { 55.301, 38.0952 },
+ { 64.8248, 33.3333 },
+ { 74.3486, 33.3333 },
+ { 83.8724, 38.0952 },
+ { 88.6343, 47.619 },
+};
+
+static const CoordRec char126_stroke1[] = {
+ { 2.92, 38.0952 },
+ { 7.6819, 47.619 },
+ { 17.2057, 52.381 },
+ { 26.7295, 52.381 },
+ { 36.2533, 47.619 },
+ { 55.301, 33.3333 },
+ { 64.8248, 28.5714 },
+ { 74.3486, 28.5714 },
+ { 83.8724, 33.3333 },
+ { 88.6343, 47.619 },
+ { 88.6343, 57.1429 },
+};
+
+static const StrokeRec char126[] = {
+ { 11, char126_stroke0 },
+ { 11, char126_stroke1 },
+};
+
+/* char: 127 */
+
+static const CoordRec char127_stroke0[] = {
+ { 52.381, 100 },
+ { 14.2857, -33.3333 },
+};
+
+static const CoordRec char127_stroke1[] = {
+ { 28.5714, 66.6667 },
+ { 14.2857, 61.9048 },
+ { 4.7619, 52.381 },
+ { 0, 38.0952 },
+ { 0, 23.8095 },
+ { 4.7619, 14.2857 },
+ { 14.2857, 4.7619 },
+ { 28.5714, 0 },
+ { 38.0952, 0 },
+ { 52.381, 4.7619 },
+ { 61.9048, 14.2857 },
+ { 66.6667, 28.5714 },
+ { 66.6667, 42.8571 },
+ { 61.9048, 52.381 },
+ { 52.381, 61.9048 },
+ { 38.0952, 66.6667 },
+ { 28.5714, 66.6667 },
+};
+
+static const StrokeRec char127[] = {
+ { 2, char127_stroke0 },
+ { 17, char127_stroke1 },
+};
+
+static const StrokeCharRec chars[] = {
+ { 0, /* char0 */ 0, 0, 0 },
+ { 0, /* char1 */ 0, 0, 0 },
+ { 0, /* char2 */ 0, 0, 0 },
+ { 0, /* char3 */ 0, 0, 0 },
+ { 0, /* char4 */ 0, 0, 0 },
+ { 0, /* char5 */ 0, 0, 0 },
+ { 0, /* char6 */ 0, 0, 0 },
+ { 0, /* char7 */ 0, 0, 0 },
+ { 0, /* char8 */ 0, 0, 0 },
+ { 0, /* char9 */ 0, 0, 0 },
+ { 0, /* char10 */ 0, 0, 0 },
+ { 0, /* char11 */ 0, 0, 0 },
+ { 0, /* char12 */ 0, 0, 0 },
+ { 0, /* char13 */ 0, 0, 0 },
+ { 0, /* char14 */ 0, 0, 0 },
+ { 0, /* char15 */ 0, 0, 0 },
+ { 0, /* char16 */ 0, 0, 0 },
+ { 0, /* char17 */ 0, 0, 0 },
+ { 0, /* char18 */ 0, 0, 0 },
+ { 0, /* char19 */ 0, 0, 0 },
+ { 0, /* char20 */ 0, 0, 0 },
+ { 0, /* char21 */ 0, 0, 0 },
+ { 0, /* char22 */ 0, 0, 0 },
+ { 0, /* char23 */ 0, 0, 0 },
+ { 0, /* char24 */ 0, 0, 0 },
+ { 0, /* char25 */ 0, 0, 0 },
+ { 0, /* char26 */ 0, 0, 0 },
+ { 0, /* char27 */ 0, 0, 0 },
+ { 0, /* char28 */ 0, 0, 0 },
+ { 0, /* char29 */ 0, 0, 0 },
+ { 0, /* char30 */ 0, 0, 0 },
+ { 0, /* char31 */ 0, 0, 0 },
+ { 0, /* char32 */ 0, 52.381, 104.762 },
+ { 2, char33, 13.3819, 26.6238 },
+ { 2, char34, 23.0676, 51.4352 },
+ { 4, char35, 36.5333, 79.4886 },
+ { 3, char36, 38.1533, 76.2067 },
+ { 3, char37, 49.2171, 96.5743 },
+ { 1, char38, 53.599, 101.758 },
+ { 1, char39, 4.44, 13.62 },
+ { 1, char40, 21.8657, 47.1733 },
+ { 1, char41, 24.3276, 47.5333 },
+ { 3, char42, 30.7695, 59.439 },
+ { 2, char43, 48.8371, 97.2543 },
+ { 1, char44, 13.5219, 26.0638 },
+ { 1, char45, 50.2371, 100.754 },
+ { 1, char46, 13.1019, 26.4838 },
+ { 1, char47, 40.5733, 82.1067 },
+ { 1, char48, 38.3133, 77.0667 },
+ { 1, char49, 30.8676, 66.5295 },
+ { 1, char50, 38.7533, 77.6467 },
+ { 1, char51, 38.3333, 77.0467 },
+ { 2, char52, 37.2133, 80.1686 },
+ { 1, char53, 38.1933, 77.6867 },
+ { 1, char54, 34.1514, 73.8048 },
+ { 2, char55, 38.8933, 77.2267 },
+ { 1, char56, 38.9333, 77.6667 },
+ { 1, char57, 39.9333, 74.0648 },
+ { 2, char58, 14.0819, 26.2238 },
+ { 2, char59, 12.9619, 26.3038 },
+ { 1, char60, 41.1552, 81.6105 },
+ { 2, char61, 48.5571, 97.2543 },
+ { 1, char62, 40.8752, 81.6105 },
+ { 2, char63, 36.9914, 73.9029 },
+ { 2, char64, 34.9314, 74.3648 },
+ { 3, char65, 40.5952, 80.4905 },
+ { 3, char66, 44.7533, 83.6267 },
+ { 1, char67, 39.9933, 84.4886 },
+ { 2, char68, 45.2933, 85.2867 },
+ { 4, char69, 39.9914, 78.1848 },
+ { 3, char70, 39.9914, 78.7448 },
+ { 2, char71, 40.3933, 89.7686 },
+ { 3, char72, 44.7533, 89.0867 },
+ { 1, char73, 10.86, 21.3 },
+ { 1, char74, 31.0714, 59.999 },
+ { 3, char75, 44.6133, 79.3267 },
+ { 2, char76, 40.2514, 71.3229 },
+ { 4, char77, 48.9552, 97.2105 },
+ { 3, char78, 44.4733, 88.8067 },
+ { 1, char79, 44.3352, 88.8305 },
+ { 2, char80, 45.4333, 85.6667 },
+ { 2, char81, 43.3952, 88.0905 },
+ { 3, char82, 45.0133, 82.3667 },
+ { 1, char83, 41.3333, 80.8267 },
+ { 2, char84, 35.6933, 71.9467 },
+ { 1, char85, 44.8733, 89.4867 },
+ { 2, char86, 40.4552, 81.6105 },
+ { 4, char87, 49.839, 100.518 },
+ { 2, char88, 35.8333, 72.3667 },
+ { 2, char89, 39.6152, 79.6505 },
+ { 3, char90, 35.8333, 73.7467 },
+ { 4, char91, 22.0657, 46.1133 },
+ { 1, char92, 39.1733, 78.2067 },
+ { 4, char93, 23.4876, 46.3933 },
+ { 2, char94, 44.0752, 90.2305 },
+ { 1, char95, 51.281, 104.062 },
+ { 2, char96, 42.5457, 83.5714 },
+ { 2, char97, 35.2514, 66.6029 },
+ { 2, char98, 37.3314, 70.4629 },
+ { 1, char99, 34.0914, 68.9229 },
+ { 2, char100, 33.2114, 70.2629 },
+ { 1, char101, 34.2914, 68.5229 },
+ { 2, char102, 14.9657, 38.6552 },
+ { 2, char103, 33.9314, 70.9829 },
+ { 2, char104, 33.4095, 71.021 },
+ { 2, char105, 14.7819, 28.8638 },
+ { 2, char106, 17.3876, 36.2314 },
+ { 3, char107, 33.4095, 62.521 },
+ { 1, char108, 10.02, 19.34 },
+ { 3, char109, 61.981, 123.962 },
+ { 2, char110, 32.9895, 70.881 },
+ { 1, char111, 33.5514, 71.7448 },
+ { 2, char112, 38.0314, 70.8029 },
+ { 2, char113, 33.4114, 70.7429 },
+ { 2, char114, 23.7457, 49.4952 },
+ { 1, char115, 28.5095, 62.321 },
+ { 2, char116, 14.8257, 39.3152 },
+ { 2, char117, 33.2695, 71.161 },
+ { 2, char118, 30.3714, 60.6029 },
+ { 4, char119, 40.5952, 80.4905 },
+ { 2, char120, 25.4695, 56.401 },
+ { 2, char121, 35.1333, 66.0648 },
+ { 3, char122, 28.2495, 61.821 },
+ { 3, char123, 21.6657, 41.6295 },
+ { 1, char124, 11.54, 23.78 },
+ { 3, char125, 18.7038, 41.4695 },
+ { 2, char126, 45.7771, 91.2743 },
+ { 2, char127, 33.3333, 66.6667 },
+};
+
+StrokeFontRec glutStrokeRoman = { "Roman", 128, chars, 119.048, -33.3333 };
+
diff --git a/samples/glut/glut_stroke.c b/samples/glut/glut_stroke.c
new file mode 100644
index 0000000..2fe408b
--- /dev/null
+++ b/samples/glut/glut_stroke.c
@@ -0,0 +1,42 @@
+
+/* Copyright (c) Mark J. Kilgard, 1994. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#include "glutint.h"
+#include "glutstroke.h"
+
+void APIENTRY
+glutStrokeCharacter(GLUTstrokeFont font, int c)
+{
+ const StrokeCharRec *ch;
+ const StrokeRec *stroke;
+ const CoordRec *coord;
+ StrokeFontPtr fontinfo;
+ int i, j;
+
+
+#if defined(_WIN32)
+ fontinfo = (StrokeFontPtr) __glutFont(font);
+#else
+ fontinfo = (StrokeFontPtr) font;
+#endif
+
+ if (c < 0 || c >= fontinfo->num_chars)
+ return;
+ ch = &(fontinfo->ch[c]);
+ if (ch) {
+ for (i = ch->num_strokes, stroke = ch->stroke;
+ i > 0; i--, stroke++) {
+ glBegin(GL_LINE_STRIP);
+ for (j = stroke->num_coords, coord = stroke->coord;
+ j > 0; j--, coord++) {
+ glVertex2f(coord->x, coord->y);
+ }
+ glEnd();
+ }
+ glTranslatef(ch->right, 0.0, 0.0);
+ }
+}
diff --git a/samples/glut/glut_swidth.c b/samples/glut/glut_swidth.c
new file mode 100644
index 0000000..e1b7374
--- /dev/null
+++ b/samples/glut/glut_swidth.c
@@ -0,0 +1,58 @@
+
+/* Copyright (c) Mark J. Kilgard, 1995. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#include "glutint.h"
+#include "glutstroke.h"
+
+/* CENTRY */
+int APIENTRY
+glutStrokeWidth(GLUTstrokeFont font, int c)
+{
+ StrokeFontPtr fontinfo;
+ const StrokeCharRec *ch;
+
+#if defined(_WIN32)
+ fontinfo = (StrokeFontPtr) __glutFont(font);
+#else
+ fontinfo = (StrokeFontPtr) font;
+#endif
+
+ if (c < 0 || c >= fontinfo->num_chars)
+ return 0;
+ ch = &(fontinfo->ch[c]);
+ if (ch)
+ return ch->right;
+ else
+ return 0;
+}
+
+int APIENTRY
+glutStrokeLength(GLUTstrokeFont font, const unsigned char *string)
+{
+ int c, length;
+ StrokeFontPtr fontinfo;
+ const StrokeCharRec *ch;
+
+#if defined(_WIN32)
+ fontinfo = (StrokeFontPtr) __glutFont(font);
+#else
+ fontinfo = (StrokeFontPtr) font;
+#endif
+
+ length = 0;
+ for (; *string != '\0'; string++) {
+ c = *string;
+ if (c >= 0 && c < fontinfo->num_chars) {
+ ch = &(fontinfo->ch[c]);
+ if (ch)
+ length += ch->right;
+ }
+ }
+ return length;
+}
+
+/* ENDCENTRY */
diff --git a/samples/glut/glutbitmap.h b/samples/glut/glutbitmap.h
new file mode 100644
index 0000000..e29a016
--- /dev/null
+++ b/samples/glut/glutbitmap.h
@@ -0,0 +1,30 @@
+#ifndef __glutbitmap_h__
+#define __glutbitmap_h__
+
+/* Copyright (c) Mark J. Kilgard, 1994. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#include "glut.h"
+
+typedef struct {
+ const GLsizei width;
+ const GLsizei height;
+ const GLfloat xorig;
+ const GLfloat yorig;
+ const GLfloat advance;
+ const GLubyte *bitmap;
+} BitmapCharRec, *BitmapCharPtr;
+
+typedef struct {
+ const char *name;
+ const int num_chars;
+ const int first;
+ const BitmapCharRec * const *ch;
+} BitmapFontRec, *BitmapFontPtr;
+
+typedef void *GLUTbitmapFont;
+
+#endif /* __glutbitmap_h__ */
diff --git a/samples/glut/glutint.h b/samples/glut/glutint.h
new file mode 100644
index 0000000..1afa6dd
--- /dev/null
+++ b/samples/glut/glutint.h
@@ -0,0 +1,24 @@
+#ifndef __glutint_h__
+#define __glutint_h__
+
+/* Copyright (c) Mark J. Kilgard, 1994, 1997, 1998. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#if defined(_WIN32)
+#include "glutwin32.h"
+#else
+#ifdef __sgi
+#define SUPPORT_FORTRAN
+#endif
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <GL/glx.h>
+#endif
+
+#include "glut.h"
+
+
+#endif /* __glutint_h__ */
diff --git a/samples/glut/glutstroke.h b/samples/glut/glutstroke.h
new file mode 100644
index 0000000..40607d0
--- /dev/null
+++ b/samples/glut/glutstroke.h
@@ -0,0 +1,42 @@
+#ifndef __glutstroke_h__
+#define __glutstroke_h__
+
+/* Copyright (c) Mark J. Kilgard, 1994. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#if defined(_WIN32) && !defined(__MINGW32__)
+#pragma warning (disable:4244) /* disable bogus conversion warnings */
+#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */
+#endif
+
+typedef struct {
+ float x;
+ float y;
+} CoordRec, *CoordPtr;
+
+typedef struct {
+ int num_coords;
+ const CoordRec *coord;
+} StrokeRec, *StrokePtr;
+
+typedef struct {
+ int num_strokes;
+ const StrokeRec *stroke;
+ float center;
+ float right;
+} StrokeCharRec, *StrokeCharPtr;
+
+typedef struct {
+ const char *name;
+ int num_chars;
+ const StrokeCharRec *ch;
+ float top;
+ float bottom;
+} StrokeFontRec, *StrokeFontPtr;
+
+typedef void *GLUTstrokeFont;
+
+#endif /* __glutstroke_h__ */
diff --git a/samples/glut/glutwin32.h b/samples/glut/glutwin32.h
new file mode 100644
index 0000000..3d60c21
--- /dev/null
+++ b/samples/glut/glutwin32.h
@@ -0,0 +1,18 @@
+#ifndef __glutwin32_h__
+#define __glutwin32_h__
+
+/* Copyright (c) Nate Robins, 1997. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#include "win32_x11.h"
+#include "win32_glx.h"
+
+/* Private routines from win32_util.c */
+extern void *__glutFont(void *font);
+extern int __glutGetTransparentPixel(Display *dpy, XVisualInfo *vinfo);
+extern void __glutAdjustCoords(Window parent, int *x, int *y, int *width, int *height);
+
+#endif /* __glutwin32_h__ */
diff --git a/samples/glut/stroke.h b/samples/glut/stroke.h
new file mode 100644
index 0000000..fc29680
--- /dev/null
+++ b/samples/glut/stroke.h
@@ -0,0 +1,134 @@
+/* $XConsortium: wfont.h,v 5.1 91/02/16 09:46:37 rws Exp $ */
+
+/*****************************************************************
+Copyright (c) 1989,1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the names of Sun Microsystems,
+the X Consortium, and MIT not be used in advertising or publicity
+pertaining to distribution of the software without specific, written
+prior permission.
+
+SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
+SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+
+#ifndef WFONT_INCLUDED
+#define WFONT_INCLUDED
+
+#define WFONT_MAGIC 0x813
+#define WFONT_MAGIC_PLUS 0x715
+#define WFONT_MAGIC_PEX 0x70686e74
+#define START_PROPS 0x100
+#define START_DISPATCH(_num_props) (START_PROPS + 160 * _num_props)
+#define START_PATH(_num_ch_, _num_props) (START_DISPATCH(_num_props) + sizeof(Dispatch) * _num_ch_)
+#define NUM_DISPATCH 128
+
+typedef struct {
+ unsigned short x;
+ unsigned short y;
+} Path_point2dpx;
+
+typedef struct {
+ float x;
+ float y;
+} Path_point2df;
+
+typedef struct {
+ int x;
+ int y;
+ int z;
+} Path_point3di;
+
+typedef struct {
+ float x;
+ float y;
+ float z;
+} Path_point3df;
+
+typedef struct {
+ float x;
+ float y;
+ float z;
+ float w;
+} Path_point4df;
+
+typedef union {
+ Path_point2dpx *pt2dpx;
+ Path_point2df *pt2df;
+ Path_point3di *pt3di;
+ Path_point3df *pt3df;
+ Path_point4df *pt4df;
+} Path_pt_ptr;
+
+typedef enum {
+ PATH_2DF,
+ PATH_2DPX,
+ PATH_3DF,
+ PATH_3DI,
+ PATH_4DF
+} Path_type;
+
+typedef struct {
+ int n_pts; /* number of points in the subpath */
+ Path_pt_ptr pts; /* pointer to them */
+ int closed; /* true if the subpath is closed */
+ int dcmp_flag; /* flag for pgon dcmp, pgon type
+ * and dcmped triangle type */
+} Path_subpath;
+
+typedef struct {
+ Path_type type; /* type of vertices in this path */
+ int n_subpaths; /* number of subpaths */
+ int n_vertices; /* total number of vertices */
+ Path_subpath *subpaths; /* array of subpaths */
+} Path;
+
+typedef Path *Path_handle;
+
+typedef struct {
+ char propname[80]; /* font property name */
+ char propvalue[80]; /* font property value */
+} Property;
+
+typedef struct {
+ int magic; /* magic number */
+ char name[80]; /* name of this font */
+ float top, /* extreme values */
+ bottom, max_width;
+ int num_ch; /* no. of fonts in the set */
+ int num_props; /* no. of font properties */
+ Property *properties; /* array of properties */
+} Font_header;
+
+typedef struct {
+ float center, /* center of the character */
+ right; /* right edge */
+ long offset; /* offset in the file of the character
+ * * description */
+} Dispatch;
+
+typedef struct {
+ float center, right;
+ Path strokes;
+} Ch_font;
+
+typedef struct {
+ char name[80];
+ float top, bottom, max_width;
+ int num_ch; /* # characters in the font */
+ Ch_font **ch_data;
+} Phg_font;
+
+#endif /*WFONT_INCLUDED */
diff --git a/samples/glut/win32_glx.c b/samples/glut/win32_glx.c
new file mode 100644
index 0000000..cc813a1
--- /dev/null
+++ b/samples/glut/win32_glx.c
@@ -0,0 +1,255 @@
+
+/* Copyright (c) Nate Robins, 1997. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#include <stdio.h>
+#include "win32_glx.h"
+
+/* global current HDC */
+extern HDC XHDC;
+
+GLXContext
+glXCreateContext(Display * display, XVisualInfo * visinfo,
+ GLXContext share, Bool direct)
+{
+ /* KLUDGE: GLX really expects a display pointer to be passed
+ in as the first parameter, but Win32 needs an HDC instead,
+ so BE SURE that the global XHDC is set before calling this
+ routine. */
+ HGLRC context;
+
+ context = wglCreateContext(XHDC);
+
+#if 0
+ /* XXX GLUT doesn't support it now, so don't worry about display list
+ and texture object sharing. */
+ if (share) {
+ wglShareLists(share, context);
+ }
+#endif
+
+ /* Since direct rendering is implicit, the direct flag is
+ ignored. */
+
+ return context;
+}
+
+int
+glXGetConfig(Display * display, XVisualInfo * visual, int attrib, int *value)
+{
+ if (!visual)
+ return GLX_BAD_VISUAL;
+
+ switch (attrib) {
+ case GLX_USE_GL:
+ if (visual->dwFlags & (PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW)) {
+ /* XXX Brad's Matrix Millenium II has problems creating
+ color index windows in 24-bit mode (lead to GDI crash)
+ and 32-bit mode (lead to black window). The cColorBits
+ filed of the PIXELFORMATDESCRIPTOR returned claims to
+ have 24 and 32 bits respectively of color indices. 2^24
+ and 2^32 are ridiculously huge writable colormaps.
+ Assume that if we get back a color index
+ PIXELFORMATDESCRIPTOR with 24 or more bits, the
+ PIXELFORMATDESCRIPTOR doesn't really work and skip it.
+ -mjk */
+ if (visual->iPixelType == PFD_TYPE_COLORINDEX
+ && visual->cColorBits >= 24) {
+ *value = 0;
+ } else {
+ *value = 1;
+ }
+ } else {
+ *value = 0;
+ }
+ break;
+ case GLX_BUFFER_SIZE:
+ /* KLUDGE: if we're RGBA, return the number of bits/pixel,
+ otherwise, return 8 (we guessed at 256 colors in CI
+ mode). */
+ if (visual->iPixelType == PFD_TYPE_RGBA)
+ *value = visual->cColorBits;
+ else
+ *value = 8;
+ break;
+ case GLX_LEVEL:
+ /* The bReserved flag of the pfd contains the
+ overlay/underlay info. */
+ *value = visual->bReserved;
+ break;
+ case GLX_RGBA:
+ *value = visual->iPixelType == PFD_TYPE_RGBA;
+ break;
+ case GLX_DOUBLEBUFFER:
+ *value = visual->dwFlags & PFD_DOUBLEBUFFER;
+ break;
+ case GLX_STEREO:
+ *value = visual->dwFlags & PFD_STEREO;
+ break;
+ case GLX_AUX_BUFFERS:
+ *value = visual->cAuxBuffers;
+ break;
+ case GLX_RED_SIZE:
+ *value = visual->cRedBits;
+ break;
+ case GLX_GREEN_SIZE:
+ *value = visual->cGreenBits;
+ break;
+ case GLX_BLUE_SIZE:
+ *value = visual->cBlueBits;
+ break;
+ case GLX_ALPHA_SIZE:
+ *value = visual->cAlphaBits;
+ break;
+ case GLX_DEPTH_SIZE:
+ *value = visual->cDepthBits;
+ break;
+ case GLX_STENCIL_SIZE:
+ *value = visual->cStencilBits;
+ break;
+ case GLX_ACCUM_RED_SIZE:
+ *value = visual->cAccumRedBits;
+ break;
+ case GLX_ACCUM_GREEN_SIZE:
+ *value = visual->cAccumGreenBits;
+ break;
+ case GLX_ACCUM_BLUE_SIZE:
+ *value = visual->cAccumBlueBits;
+ break;
+ case GLX_ACCUM_ALPHA_SIZE:
+ *value = visual->cAccumAlphaBits;
+ break;
+ default:
+ return GLX_BAD_ATTRIB;
+ }
+ return 0;
+}
+
+XVisualInfo *
+glXChooseVisual(Display * display, int screen, int *attribList)
+{
+ /* KLUDGE: since we need the HDC, MAKE SURE to set XHDC
+ before calling this routine. */
+
+ int *p = attribList;
+ int pf;
+ PIXELFORMATDESCRIPTOR pfd;
+ PIXELFORMATDESCRIPTOR *match = NULL;
+ int stereo = 0;
+
+ /* Avoid seg-faults. */
+ if (!p)
+ return NULL;
+
+ memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR));
+ pfd.nSize = (sizeof(PIXELFORMATDESCRIPTOR));
+ pfd.nVersion = 1;
+
+ /* Defaults. */
+ pfd.dwFlags = PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW;
+ pfd.iPixelType = PFD_TYPE_COLORINDEX;
+ pfd.cColorBits = 32;
+ pfd.cDepthBits = 0;
+
+ while (*p) {
+ switch (*p) {
+ case GLX_USE_GL:
+ pfd.dwFlags |= PFD_SUPPORT_OPENGL;
+ break;
+ case GLX_BUFFER_SIZE:
+ pfd.cColorBits = *(++p);
+ break;
+ case GLX_LEVEL:
+ /* the bReserved flag of the pfd contains the
+ overlay/underlay info. */
+ pfd.bReserved = *(++p);
+ break;
+ case GLX_RGBA:
+ pfd.iPixelType = PFD_TYPE_RGBA;
+ break;
+ case GLX_DOUBLEBUFFER:
+ pfd.dwFlags |= PFD_DOUBLEBUFFER;
+ break;
+ case GLX_STEREO:
+ stereo = 1;
+ pfd.dwFlags |= PFD_STEREO;
+ break;
+ case GLX_AUX_BUFFERS:
+ pfd.cAuxBuffers = *(++p);
+ break;
+ case GLX_RED_SIZE:
+ pfd.cRedBits = 8; /* Try to get the maximum. */
+ ++p;
+ break;
+ case GLX_GREEN_SIZE:
+ pfd.cGreenBits = 8;
+ ++p;
+ break;
+ case GLX_BLUE_SIZE:
+ pfd.cBlueBits = 8;
+ ++p;
+ break;
+ case GLX_ALPHA_SIZE:
+ pfd.cAlphaBits = 8;
+ ++p;
+ break;
+ case GLX_DEPTH_SIZE:
+ pfd.cDepthBits = 32;
+ ++p;
+ break;
+ case GLX_STENCIL_SIZE:
+ pfd.cStencilBits = *(++p);
+ break;
+ case GLX_ACCUM_RED_SIZE:
+ case GLX_ACCUM_GREEN_SIZE:
+ case GLX_ACCUM_BLUE_SIZE:
+ case GLX_ACCUM_ALPHA_SIZE:
+ /* I believe that WGL only used the cAccumRedBits,
+ cAccumBlueBits, cAccumGreenBits, and cAccumAlphaBits fields
+ when returning info about the accumulation buffer precision.
+ Only cAccumBits is used for requesting an accumulation
+ buffer. */
+ pfd.cAccumBits = 1;
+ ++p;
+ break;
+ }
+ ++p;
+ }
+
+ /* Let Win32 choose one for us. */
+ pf = ChoosePixelFormat(XHDC, &pfd);
+ if (pf > 0) {
+ match = (PIXELFORMATDESCRIPTOR *) malloc(sizeof(PIXELFORMATDESCRIPTOR));
+ DescribePixelFormat(XHDC, pf, sizeof(PIXELFORMATDESCRIPTOR), match);
+
+ /* ChoosePixelFormat is dumb in that it will return a pixel
+ format that doesn't have stereo even if it was requested
+ so we need to make sure that if stereo was selected, we
+ got it. */
+ if (stereo) {
+ if (!(match->dwFlags & PFD_STEREO)) {
+ free(match);
+ return NULL;
+ }
+ }
+ /* XXX Brad's Matrix Millenium II has problems creating
+ color index windows in 24-bit mode (lead to GDI crash)
+ and 32-bit mode (lead to black window). The cColorBits
+ filed of the PIXELFORMATDESCRIPTOR returned claims to
+ have 24 and 32 bits respectively of color indices. 2^24
+ and 2^32 are ridiculously huge writable colormaps.
+ Assume that if we get back a color index
+ PIXELFORMATDESCRIPTOR with 24 or more bits, the
+ PIXELFORMATDESCRIPTOR doesn't really work and skip it.
+ -mjk */
+ if (match->iPixelType == PFD_TYPE_COLORINDEX
+ && match->cColorBits >= 24) {
+ free(match);
+ return NULL;
+ }
+ }
+ return match;
+}
diff --git a/samples/glut/win32_glx.h b/samples/glut/win32_glx.h
new file mode 100644
index 0000000..d3630e7
--- /dev/null
+++ b/samples/glut/win32_glx.h
@@ -0,0 +1,58 @@
+#ifndef __win32_glx_h__
+#define __win32_glx_h__
+
+/* Copyright (c) Nate Robins, 1997. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#include "win32_x11.h"
+
+/* Type definitions (conversions). */
+typedef HGLRC GLXContext;
+
+#define GLX_USE_GL 1 /* support GLX rendering */
+#define GLX_BUFFER_SIZE 2 /* depth of the color buffer */
+#define GLX_LEVEL 3 /* level in plane stacking */
+#define GLX_RGBA 4 /* true if RGBA mode */
+#define GLX_DOUBLEBUFFER 5 /* double buffering supported */
+#define GLX_STEREO 6 /* stereo buffering supported */
+#define GLX_AUX_BUFFERS 7 /* number of aux buffers */
+#define GLX_RED_SIZE 8 /* number of red component bits */
+#define GLX_GREEN_SIZE 9 /* number of green component bits */
+#define GLX_BLUE_SIZE 10 /* number of blue component bits */
+#define GLX_ALPHA_SIZE 11 /* number of alpha component bits */
+#define GLX_DEPTH_SIZE 12 /* number of depth bits */
+#define GLX_STENCIL_SIZE 13 /* number of stencil bits */
+#define GLX_ACCUM_RED_SIZE 14 /* number of red accum bits */
+#define GLX_ACCUM_GREEN_SIZE 15 /* number of green accum bits */
+#define GLX_ACCUM_BLUE_SIZE 16 /* number of blue accum bits */
+#define GLX_ACCUM_ALPHA_SIZE 17 /* number of alpha accum bits */
+
+#define GLX_BAD_ATTRIB 2
+#define GLX_BAD_VISUAL 4
+
+/* Functions emulated by macros. */
+
+#define glXDestroyContext(display, context) \
+ wglDeleteContext(context)
+
+/* Function prototypes. */
+
+extern GLXContext glXCreateContext(
+ Display* display,
+ XVisualInfo* visinfo,
+ GLXContext share,
+ Bool direct);
+extern int glXGetConfig(
+ Display* display,
+ XVisualInfo* visual,
+ int attrib,
+ int* value);
+extern XVisualInfo* glXChooseVisual(
+ Display* display,
+ int screen,
+ int* attribList);
+
+#endif /* __win32_glx_h__ */
diff --git a/samples/glut/win32_util.c b/samples/glut/win32_util.c
new file mode 100644
index 0000000..5b473a0
--- /dev/null
+++ b/samples/glut/win32_util.c
@@ -0,0 +1,82 @@
+
+/* Copyright (c) Nate Robins, 1997. */
+
+/* portions Copyright (c) Mark Kilgard, 1997, 1998. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+
+#include "glutint.h"
+#include "glutstroke.h"
+#include "glutbitmap.h"
+
+extern StrokeFontRec glutStrokeRoman;
+
+/* To get around the fact that Microsoft DLLs only allow functions
+ to be exported and now data addresses (as Unix DSOs support), the
+ GLUT API constants such as GLUT_STROKE_ROMAN have to get passed
+ through a case statement to get mapped to the actual data structure
+ address. */
+void*
+__glutFont(void *font)
+{
+ switch (*reinterpret_cast<size_t *>(&font)) {
+#ifdef __MINGW32__
+ case 0:
+#else
+ case (size_t)GLUT_STROKE_ROMAN:
+#endif
+ return &glutStrokeRoman;
+ }
+ return &glutStrokeRoman;
+}
+
+int
+__glutGetTransparentPixel(Display * dpy, XVisualInfo * vinfo)
+{
+ /* the transparent pixel on Win32 is always index number 0. So if
+ we put this routine in this file, we can avoid compiling the
+ whole of layerutil.c which is where this routine normally comes
+ from. */
+ return 0;
+}
+
+void
+__glutAdjustCoords(Window parent, int* x, int* y, int* width, int* height)
+{
+ RECT rect;
+
+ /* adjust the window rectangle because Win32 thinks that the x, y,
+ width & height are the WHOLE window (including decorations),
+ whereas GLUT treats the x, y, width & height as only the CLIENT
+ area of the window. */
+ rect.left = *x; rect.top = *y;
+ rect.right = *x + *width; rect.bottom = *y + *height;
+
+ /* must adjust the coordinates according to the correct style
+ because depending on the style, there may or may not be
+ borders. */
+ AdjustWindowRect(&rect, WS_CLIPSIBLINGS | WS_CLIPCHILDREN |
+ (parent ? WS_CHILD : WS_OVERLAPPEDWINDOW),
+ FALSE);
+ /* FALSE in the third parameter = window has no menu bar */
+
+ /* readjust if the x and y are offscreen */
+ if(rect.left < 0) {
+ *x = 0;
+ } else {
+ *x = rect.left;
+ }
+
+ if(rect.top < 0) {
+ *y = 0;
+ } else {
+ *y = rect.top;
+ }
+
+ *width = rect.right - rect.left; /* adjusted width */
+ *height = rect.bottom - rect.top; /* adjusted height */
+}
+
diff --git a/samples/glut/win32_x11.c b/samples/glut/win32_x11.c
new file mode 100644
index 0000000..327522c
--- /dev/null
+++ b/samples/glut/win32_x11.c
@@ -0,0 +1,401 @@
+
+/* Copyright (c) Nate Robins, 1997. */
+/* portions Copyright (c) Mark Kilgard, 1998. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#include <stdio.h>
+#include "win32_x11.h"
+
+/* global variable that must be set for some functions to operate
+ correctly. */
+HDC XHDC;
+
+XVisualInfo*
+XGetVisualInfo(Display* display, long mask, XVisualInfo* xtemplate, int* nitems)
+{
+ /* KLUDGE: this function needs XHDC to be set to the HDC currently
+ being operated on before it is invoked! */
+
+ PIXELFORMATDESCRIPTOR* pfds;
+ int i, n;
+
+ n = DescribePixelFormat(XHDC, 0, 0, NULL);
+ pfds = (PIXELFORMATDESCRIPTOR*)malloc(sizeof(PIXELFORMATDESCRIPTOR) * n);
+ memset(pfds, 0, sizeof(PIXELFORMATDESCRIPTOR) * n);
+
+ for (i = 0; i < n; i++) {
+ DescribePixelFormat(XHDC, i, sizeof(PIXELFORMATDESCRIPTOR), &pfds[i]);
+ }
+
+ *nitems = n;
+ return pfds;
+}
+
+Colormap
+XCreateColormap(Display* display, Window root, Visual* visual, int alloc)
+{
+ /* KLUDGE: this function needs XHDC to be set to the HDC currently
+ being operated on before it is invoked! */
+
+ PIXELFORMATDESCRIPTOR pfd;
+ LOGPALETTE *logical;
+ HPALETTE palette;
+ int n;
+
+ /* grab the pixel format */
+ memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR));
+ DescribePixelFormat(XHDC, GetPixelFormat(XHDC),
+ sizeof(PIXELFORMATDESCRIPTOR), &pfd);
+
+ if (!(pfd.dwFlags & PFD_NEED_PALETTE ||
+ pfd.iPixelType == PFD_TYPE_COLORINDEX))
+ {
+ return 0;
+ }
+
+ n = 1 << pfd.cColorBits;
+
+ /* allocate a bunch of memory for the logical palette (assume 256
+ colors in a Win32 palette */
+ logical = (LOGPALETTE*)malloc(sizeof(LOGPALETTE) +
+ sizeof(PALETTEENTRY) * n);
+ memset(logical, 0, sizeof(LOGPALETTE) + sizeof(PALETTEENTRY) * n);
+
+ /* set the entries in the logical palette */
+ logical->palVersion = 0x300;
+ logical->palNumEntries = n;
+
+ /* start with a copy of the current system palette */
+ GetSystemPaletteEntries(XHDC, 0, 256, &logical->palPalEntry[0]);
+
+ if (pfd.iPixelType == PFD_TYPE_RGBA) {
+ int redMask = (1 << pfd.cRedBits) - 1;
+ int greenMask = (1 << pfd.cGreenBits) - 1;
+ int blueMask = (1 << pfd.cBlueBits) - 1;
+ int i;
+
+ /* fill in an RGBA color palette */
+ for (i = 0; i < n; ++i) {
+ logical->palPalEntry[i].peRed =
+ (((i >> pfd.cRedShift) & redMask) * 255) / redMask;
+ logical->palPalEntry[i].peGreen =
+ (((i >> pfd.cGreenShift) & greenMask) * 255) / greenMask;
+ logical->palPalEntry[i].peBlue =
+ (((i >> pfd.cBlueShift) & blueMask) * 255) / blueMask;
+ logical->palPalEntry[i].peFlags = 0;
+ }
+ }
+
+ palette = CreatePalette(logical);
+ free(logical);
+
+ SelectPalette(XHDC, palette, FALSE);
+ RealizePalette(XHDC);
+
+ return palette;
+}
+
+void
+XAllocColorCells(Display* display, Colormap colormap, Bool contig,
+ unsigned long plane_masks_return[], unsigned int nplanes,
+ unsigned long pixels_return[], unsigned int npixels)
+{
+ /* NOP -- we did all the allocating in XCreateColormap! */
+}
+
+void
+XStoreColor(Display* display, Colormap colormap, XColor* color)
+{
+ /* KLUDGE: set XHDC to 0 if the palette should NOT be realized after
+ setting the color. set XHDC to the correct HDC if it should. */
+
+ PALETTEENTRY pe;
+
+ /* X11 stores color from 0-65535, Win32 expects them to be 0-256, so
+ twiddle the bits ( / 256). */
+ pe.peRed = color->red / 256;
+ pe.peGreen = color->green / 256;
+ pe.peBlue = color->blue / 256;
+
+ /* make sure we use this flag, otherwise the colors might get mapped
+ to another place in the colormap, and when we glIndex() that
+ color, it may have moved (argh!!) */
+ pe.peFlags = PC_NOCOLLAPSE;
+
+ /* the pixel field of the XColor structure is the index into the
+ colormap */
+ SetPaletteEntries(colormap, color->pixel, 1, &pe);
+
+ if (XHDC) {
+ UnrealizeObject(colormap);
+ SelectPalette(XHDC, colormap, FALSE);
+ RealizePalette(XHDC);
+ }
+}
+
+void
+XSetWindowColormap(Display* display, Window window, Colormap colormap)
+{
+ HDC hdc = GetDC(window);
+
+ /* if the third parameter is FALSE, the logical colormap is copied
+ into the device palette when the application is in the
+ foreground, if it is TRUE, the colors are mapped into the current
+ palette in the best possible way. */
+ SelectPalette(hdc, colormap, FALSE);
+ RealizePalette(hdc);
+
+ /* note that we don't have to release the DC, since our window class
+ uses the WC_OWNDC flag! */
+}
+
+Bool
+XTranslateCoordinates(Display *display, Window src, Window dst,
+ int src_x, int src_y,
+ int* dest_x_return, int* dest_y_return,
+ Window* child_return)
+{
+ /* KLUDGE: this isn't really a translate coordinates into some other
+ windows coordinate system...it only translates coordinates into the
+ root window (screen) coordinate system. */
+
+ POINT point;
+
+ point.x = src_x;
+ point.y = src_y;
+
+ ClientToScreen(src, &point);
+
+ *dest_x_return = point.x;
+ *dest_y_return = point.y;
+
+ /* just to make compilers happy...we don't use the return value. */
+ return True;
+}
+
+Status
+XGetGeometry(Display* display, Window window, Window* root_return,
+ int* x_return, int* y_return,
+ unsigned int* width_return, unsigned int* height_return,
+ unsigned int *border_width_return, unsigned int* depth_return)
+{
+ /* KLUDGE: doesn't return the border_width or depth or root, x & y
+ are in screen coordinates. */
+
+ RECT rect;
+ POINT point;
+
+ GetClientRect(window, &rect);
+
+ point.x = 0;
+ point.y = 0;
+ ClientToScreen(window, &point);
+
+ *x_return = point.x;
+ *y_return = point.y;
+ *width_return = rect.right;
+ *height_return = rect.bottom;
+
+ /* just to make compilers happy...we don't use the return value. */
+ return 1;
+}
+
+int
+DisplayWidthMM(Display* display, int screen)
+{
+ int width;
+ HWND hwnd = GetDesktopWindow();
+ HDC hdc = GetDC(hwnd);
+
+ width = GetDeviceCaps(hdc, HORZSIZE);
+
+ /* make sure to release this DC (it's the desktops, not ours) */
+ ReleaseDC(hwnd, hdc);
+
+ return width;
+}
+
+int
+DisplayHeightMM(Display* display, int screen)
+{
+ int height;
+ HWND hwnd = GetDesktopWindow();
+ HDC hdc = GetDC(hwnd);
+
+ height = GetDeviceCaps(hdc, VERTSIZE);
+
+ /* make sure to release this DC (it's the desktops, not ours) */
+ ReleaseDC(hwnd, hdc);
+
+ return height;
+}
+
+void
+XWarpPointer(Display* display, Window src, Window dst,
+ int src_x, int src_y, int src_width, int src_height,
+ int dst_x, int dst_y)
+{
+ /* KLUDGE: this isn't really a warp pointer into some other windows
+ coordinate system...it only warps the pointer into the root window
+ (screen) coordinate system. */
+
+ POINT point;
+
+ point.x = dst_x;
+ point.y = dst_y;
+ ClientToScreen(dst, &point);
+
+ SetCursorPos(point.x, point.y);
+}
+
+int
+XPending(Display* display)
+{
+ /* similar functionality...I don't think that it is exact, but this
+ will have to do. */
+ MSG msg;
+
+ return PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE);
+}
+
+/* the following function was stolen from the X sources as indicated. */
+
+/* Copyright Massachusetts Institute of Technology 1985, 1986, 1987 */
+/* $XConsortium: XParseGeom.c,v 11.18 91/02/21 17:23:05 rws Exp $ */
+
+/*
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of M.I.T. not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission. M.I.T. makes no representations about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+*/
+
+/*
+ * XParseGeometry parses strings of the form
+ * "=<width>x<height>{+-}<xoffset>{+-}<yoffset>", where
+ * width, height, xoffset, and yoffset are unsigned integers.
+ * Example: "=80x24+300-49"
+ * The equal sign is optional.
+ * It returns a bitmask that indicates which of the four values
+ * were actually found in the string. For each value found,
+ * the corresponding argument is updated; for each value
+ * not found, the corresponding argument is left unchanged.
+ */
+
+static int
+ReadInteger(char *string, char **NextString)
+{
+ register int Result = 0;
+ int Sign = 1;
+
+ if (*string == '+')
+ string++;
+ else if (*string == '-')
+ {
+ string++;
+ Sign = -1;
+ }
+ for (; (*string >= '0') && (*string <= '9'); string++)
+ {
+ Result = (Result * 10) + (*string - '0');
+ }
+ *NextString = string;
+ if (Sign >= 0)
+ return (Result);
+ else
+ return (-Result);
+}
+
+int XParseGeometry(char *string, int *x, int *y, unsigned int *width, unsigned int *height)
+{
+ int mask = NoValue;
+ register char *strind;
+ unsigned int tempWidth, tempHeight;
+ int tempX, tempY;
+ char *nextCharacter;
+
+ if ( (string == NULL) || (*string == '\0')) return(mask);
+ if (*string == '=')
+ string++; /* ignore possible '=' at beg of geometry spec */
+
+ strind = (char *)string;
+ if (*strind != '+' && *strind != '-' && *strind != 'x') {
+ tempWidth = ReadInteger(strind, &nextCharacter);
+ if (strind == nextCharacter)
+ return (0);
+ strind = nextCharacter;
+ mask |= WidthValue;
+ }
+
+ if (*strind == 'x' || *strind == 'X') {
+ strind++;
+ tempHeight = ReadInteger(strind, &nextCharacter);
+ if (strind == nextCharacter)
+ return (0);
+ strind = nextCharacter;
+ mask |= HeightValue;
+ }
+
+ if ((*strind == '+') || (*strind == '-')) {
+ if (*strind == '-') {
+ strind++;
+ tempX = -ReadInteger(strind, &nextCharacter);
+ if (strind == nextCharacter)
+ return (0);
+ strind = nextCharacter;
+ mask |= XNegative;
+
+ }
+ else
+ { strind++;
+ tempX = ReadInteger(strind, &nextCharacter);
+ if (strind == nextCharacter)
+ return(0);
+ strind = nextCharacter;
+ }
+ mask |= XValue;
+ if ((*strind == '+') || (*strind == '-')) {
+ if (*strind == '-') {
+ strind++;
+ tempY = -ReadInteger(strind, &nextCharacter);
+ if (strind == nextCharacter)
+ return(0);
+ strind = nextCharacter;
+ mask |= YNegative;
+
+ }
+ else
+ {
+ strind++;
+ tempY = ReadInteger(strind, &nextCharacter);
+ if (strind == nextCharacter)
+ return(0);
+ strind = nextCharacter;
+ }
+ mask |= YValue;
+ }
+ }
+
+ /* If strind isn't at the end of the string the it's an invalid
+ geometry specification. */
+
+ if (*strind != '\0') return (0);
+
+ if (mask & XValue)
+ *x = tempX;
+ if (mask & YValue)
+ *y = tempY;
+ if (mask & WidthValue)
+ *width = tempWidth;
+ if (mask & HeightValue)
+ *height = tempHeight;
+ return (mask);
+}
diff --git a/samples/glut/win32_x11.h b/samples/glut/win32_x11.h
new file mode 100644
index 0000000..bb49977
--- /dev/null
+++ b/samples/glut/win32_x11.h
@@ -0,0 +1,319 @@
+#ifndef __win32_x11_h__
+#define __win32_x11_h__
+
+/* Copyright (c) Nate Robins, 1997. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#include <stdlib.h>
+#include <windows.h>
+
+/* Type definitions (conversions) */
+typedef int Visual; /* Win32 equivalent of X11 type */
+typedef HWND Window;
+typedef HPALETTE Colormap;
+typedef PIXELFORMATDESCRIPTOR XVisualInfo;
+typedef BOOL Bool;
+typedef MSG XEvent;
+typedef HDC Display;
+typedef HCURSOR Cursor;
+
+typedef int Atom; /* dummies */
+typedef int XDevice;
+typedef int Status;
+
+#define True TRUE /* Win32 equivalents of X11 booleans */
+#define False FALSE
+
+#define None 0L /* universal null resource or null atom */
+
+/* Input Event Masks. Used as event-mask window attribute and as arguments
+ to Grab requests. Not to be confused with event names. */
+
+#define NoEventMask 0L
+#define KeyPressMask (1L<<0)
+#define KeyReleaseMask (1L<<1)
+#define ButtonPressMask (1L<<2)
+#define ButtonReleaseMask (1L<<3)
+#define EnterWindowMask (1L<<4)
+#define LeaveWindowMask (1L<<5)
+#define PointerMotionMask (1L<<6)
+#define PointerMotionHintMask (1L<<7)
+#define Button1MotionMask (1L<<8)
+#define Button2MotionMask (1L<<9)
+#define Button3MotionMask (1L<<10)
+#define Button4MotionMask (1L<<11)
+#define Button5MotionMask (1L<<12)
+#define ButtonMotionMask (1L<<13)
+#define KeymapStateMask (1L<<14)
+#define ExposureMask (1L<<15)
+#define VisibilityChangeMask (1L<<16)
+#define StructureNotifyMask (1L<<17)
+#define ResizeRedirectMask (1L<<18)
+#define SubstructureNotifyMask (1L<<19)
+#define SubstructureRedirectMask (1L<<20)
+#define FocusChangeMask (1L<<21)
+#define PropertyChangeMask (1L<<22)
+#define ColormapChangeMask (1L<<23)
+#define OwnerGrabButtonMask (1L<<24)
+
+/* Key masks. Used as modifiers to GrabButton and GrabKey, results of
+ QueryPointer, state in various key-, mouse-, and button-related
+ events. */
+
+#define ShiftMask (1<<0)
+#define LockMask (1<<1)
+#define ControlMask (1<<2)
+#define Mod1Mask (1<<3)
+#define Mod2Mask (1<<4)
+#define Mod3Mask (1<<5)
+#define Mod4Mask (1<<6)
+#define Mod5Mask (1<<7)
+
+/* Window classes used by CreateWindow */
+/* Note that CopyFromParent is already defined as 0 above */
+
+#define InputOutput 1
+#define InputOnly 2
+
+/* Window attributes for CreateWindow and ChangeWindowAttributes */
+
+#define CWBackPixmap (1L<<0)
+#define CWBackPixel (1L<<1)
+#define CWBorderPixmap (1L<<2)
+#define CWBorderPixel (1L<<3)
+#define CWBitGravity (1L<<4)
+#define CWWinGravity (1L<<5)
+#define CWBackingStore (1L<<6)
+#define CWBackingPlanes (1L<<7)
+#define CWBackingPixel (1L<<8)
+#define CWOverrideRedirect (1L<<9)
+#define CWSaveUnder (1L<<10)
+#define CWEventMask (1L<<11)
+#define CWDontPropagate (1L<<12)
+#define CWColormap (1L<<13)
+#define CWCursor (1L<<14)
+
+/* ConfigureWindow structure */
+
+#define CWX (1<<0)
+#define CWY (1<<1)
+#define CWWidth (1<<2)
+#define CWHeight (1<<3)
+#define CWBorderWidth (1<<4)
+#define CWSibling (1<<5)
+#define CWStackMode (1<<6)
+
+
+/* Used in GetWindowAttributes reply */
+
+#define IsUnmapped 0
+#define IsUnviewable 1
+#define IsViewable 2
+
+/* Window stacking method (in configureWindow) */
+
+#define Above 0
+#define Below 1
+#define TopIf 2
+#define BottomIf 3
+#define Opposite 4
+
+/* For CreateColormap */
+
+#define AllocNone 0 /* create map with no entries */
+#define AllocAll 1 /* allocate entire map writeable */
+
+
+/* Flags used in StoreNamedColor, StoreColors */
+
+#define DoRed (1<<0)
+#define DoGreen (1<<1)
+#define DoBlue (1<<2)
+
+/*
+ * Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
+ * value (x, y, width, height) was found in the parsed string.
+ */
+#define NoValue 0x0000
+#define XValue 0x0001
+#define YValue 0x0002
+#define WidthValue 0x0004
+#define HeightValue 0x0008
+#define AllValues 0x000F
+#define XNegative 0x0010
+#define YNegative 0x0020
+
+/* flags argument in size hints */
+#define USPosition (1L << 0) /* user specified x, y */
+#define USSize (1L << 1) /* user specified width, height */
+
+/* definitions for initial window state */
+#define WithdrawnState 0 /* for windows that are not mapped */
+#define NormalState 1 /* most applications want to start this way */
+#define IconicState 3 /* application wants to start as an icon */
+#define GameModeState 4 /* Win32 GLUT only (not in Xlib!). */
+
+/* Type definitions */
+
+typedef struct {
+ unsigned int background_pixmap; /* background pixmap */
+ unsigned long background_pixel; /* background pixel */
+ unsigned long border_pixel; /* border pixel value */
+ long event_mask; /* set of events that should be saved */
+ long do_not_propagate_mask; /* set of events that should not propagate */
+ Bool override_redirect; /* boolean value for override-redirect */
+ Colormap colormap; /* color map to be associated with window */
+} XSetWindowAttributes;
+
+typedef struct {
+ unsigned long pixel;
+ unsigned short red, green, blue;
+ char flags; /* do_red, do_green, do_blue */
+} XColor;
+
+typedef struct {
+ unsigned char *value; /* same as Property routines */
+ Atom encoding; /* prop type */
+ int format; /* prop data format: 8, 16, or 32 */
+ unsigned long nitems; /* number of data items in value */
+} XTextProperty;
+
+typedef struct {
+ long flags; /* marks which fields in this structure are defined */
+ int x, y; /* obsolete for new window mgrs, but clients */
+ int width, height; /* should set so old wm's don't mess up */
+} XSizeHints;
+
+/* Functions emulated by macros. */
+
+#define XFreeColormap(display, colormap) \
+ DeleteObject(colormap)
+
+#define XCreateFontCursor(display, shape) \
+ LoadCursor(NULL, shape)
+
+#define XDefineCursor(display, window, cursor) \
+ SetCursor(cursor)
+
+#define XFlush(display) \
+ /* Nothing. */
+
+#define DisplayWidth(display, screen) \
+ GetSystemMetrics(SM_CXSCREEN)
+
+#define DisplayHeight(display, screen) \
+ GetSystemMetrics(SM_CYSCREEN)
+
+#define XMapWindow(display, window) \
+ ShowWindow(window, SW_SHOWNORMAL)
+
+#define XUnmapWindow(display, window) \
+ ShowWindow(window, SW_HIDE)
+
+#define XIconifyWindow(display, window, screen) \
+ ShowWindow(window, SW_MINIMIZE)
+
+#define XWithdrawWindow(display, window, screen) \
+ ShowWindow(window, SW_HIDE)
+
+#define XLowerWindow(display, window) \
+ SetWindowPos(window, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE)
+
+#define XSetWMName(display, window, tp) \
+ SetWindowText(window, (tp)->value)
+
+/* There really isn't a way to set the icon name separate from the
+ windows name in Win32, so, just set the windows name. */
+#define XSetWMIconName(display, window, tp) \
+ XSetWMName(display, window, tp)
+
+#define XDestroyWindow(display, window) \
+ DestroyWindow(window)
+
+/* Anything that needs to be freed was allocated with malloc in our
+ fake X windows library for Win32, so free it with plain old
+ free(). */
+#define XFree(data) \
+ free(data)
+
+/* Nothing to be done for this...the pointer is always 'ungrabbed'
+ in Win32. */
+#define XUngrabPointer(display, time) \
+ /* Nothing. */
+
+/* Function prototypes. */
+
+extern XVisualInfo* XGetVisualInfo(
+ Display* display,
+ long mask,
+ XVisualInfo* ttemplate, /* Avoid class with C++ keyword. */
+ int*nitems);
+
+extern Colormap XCreateColormap(
+ Display* display,
+ Window root,
+ Visual* visual,
+ int alloc);
+
+extern void XAllocColorCells(
+ Display* display,
+ Colormap colormap,
+ Bool contig,
+ unsigned long plane_masks_return[],
+ unsigned int nplanes,
+ unsigned long pixels_return[],
+ unsigned int npixels);
+
+extern void XStoreColor(
+ Display* display,
+ Colormap colormap,
+ XColor* color);
+
+extern void XSetWindowColormap(
+ Display* display,
+ Window window,
+ Colormap colormap);
+
+extern Bool XTranslateCoordinates(
+ Display *display,
+ Window src, Window dst,
+ int src_x, int src_y,
+ int* dest_x_return, int* dest_y_return,
+ Window* child_return);
+
+extern Status XGetGeometry(
+ Display* display,
+ Window window,
+ Window* root_return,
+ int* x_return, int* y_return,
+ unsigned int* width_return, unsigned int* height_return,
+ unsigned int *border_width_return,
+ unsigned int* depth_return);
+
+extern int DisplayWidthMM(
+ Display* display,
+ int screen);
+
+extern int DisplayHeightMM(
+ Display* display,
+ int screen);
+
+extern void XWarpPointer(
+ Display* display,
+ Window src, Window dst,
+ int src_x, int src_y,
+ int src_width, int src_height,
+ int dst_x, int dst_y);
+
+extern int XParseGeometry(
+ char* string,
+ int* x, int* y,
+ unsigned int* width, unsigned int* height);
+
+extern int XPending(
+ Display* display);
+
+#endif /* __win32_x11_h__ */
--
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