From 205324734626a5dece03fc871448d0f71bbfb46d Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 24 Oct 2012 04:25:46 +0900 Subject: removed branding info from branding config file So we officially can say this is a generic client now. Branding config file is still at pkg/branding/config.py Note that with this change the package is called now leap-client so you will have to remove old installs of leap-foo-client in your path (from previous branded builds). Changing the package name was an AWFUL and painful idea, and we will not do that again. (launcher is another story). Lesson learned. --- data/branding/cacert.pem | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 data/branding/cacert.pem (limited to 'data') diff --git a/data/branding/cacert.pem b/data/branding/cacert.pem deleted file mode 100644 index ed12e159..00000000 --- a/data/branding/cacert.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIECzCCAl2gAwIBAgIEUFDp9TANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRU -RVNUMB4XDTEyMDkxMjIwMDA1M1oXDTEzMDkxMjIwMDA1M1owDzENMAsGA1UEAxME -VEVTVDCCAbgwDQYJKoZIhvcNAQEBBQADggGlADCCAaACggGXANsoS1m9wj9iv+UV -BXfeq14SR94gSot96eJu7PZVRrcGlGe/PRfbmfxF3j/gXM9B8sIkyM2L46OMtOKw -1iOTKtYYdMhtnUSd3FRshWGtYeuy+OCe9umU0jfZDBZ2pXlUmSqCNqfD0OPkksYL -GDjQUKjaEd1oURwpCG8uEU+3tjBNCMuEwhcMEoUYmI8t4vss2hdFb+LKefVMPTzz -oiNM/o8Z/ANzWCC0qSW5FsB4wGhUS5HKLDOr4tACgdxaJSWtAqFFAnyMeG9g8aqe -PTM+URlqVnzzGckrJwBbd4y0zEpv/R7SAiSAP725cnB1GKptwdrcNIIHnQjOdAOl -uNg6JlRXrv6fV1gApka4INfJAf1yMf+fA0WdZ22UJQ9Up7tdzi8lL+3HsEpEx4Pz -NyzuqzEw9LJ6SUmMcE/VP00t4RjTOVoncwcLjvURY8jt2DQ9E36JEPwUoyALq/De -bGBjeK2KGzBZcOu1HZAwWLLWR2++WKuCEXbRbahwSIlbMfmAe8xGx4bbHol0D1A+ -wmu0uxjAze6FvUkCAwEAAaNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8E -BQMDBwQAMB0GA1UdDgQWBBT/PX8XZ0Y2jDkppz6PHs23IgzQEDANBgkqhkiG9w0B -AQsFAAOCAZcAMfi+HLbcFaB0/Mv8/GkIdjpThUBVEeFrIiDy9GmGWUDOXgP1Skld -5H4eY5inE5lFfB69yacHIGS4OiZIBuBKfKNl5d6XO+ztJEJpG3yrbF4MtGV/aHEp -OlbJCncnk3fspBk6tFGrv4Inak4gza6SQPfBEZj29ciwfwrqrtuWZ7km+og0Clcd -pIB0g+DK0K//NtaDZDK0havQw2AFJKyXlNfI8XZ2jsNmQYR1wtiMci+UfGQr7bjn -Kw9yyVCf0ohXvnSK4ortz/bDQbcMWkK0m/VCCEK8PSldk+XFzPWFWn5ndKCczcvd -1BQc392n12ZstEuzm6+d9A0D3kCxralJUXUC+4kThq4Rtjey/gBjyZQnZ+5tIxMF -5ZFAStEglNxqm6HB17q7owJqTvIg9Cf9GATsvoFFQDJrBXewRX7cWVeSr0zNSQB4 -ydIlSUOkyE3AyfLN+lx8NVS/I7gp4fWDuHrh27NKKDtMxalxPL5pTGO7l4uTybLY -4aVzQYGvzA5HVS++VAtcTQ6TP9p4HURL2cllEU9u9A== ------END CERTIFICATE----- -- cgit v1.2.3 From c387a52f841e8933ed7282d198ed1ece863979fc Mon Sep 17 00:00:00 2001 From: kali Date: Tue, 6 Nov 2012 01:26:05 +0900 Subject: new validation pages in a reusable MVC style using progress indicators inside QTableWidget --- data/images/checked.png | Bin 0 -> 1375 bytes data/resources/mainwindow.qrc | 1 + 2 files changed, 1 insertion(+) create mode 100644 data/images/checked.png (limited to 'data') diff --git a/data/images/checked.png b/data/images/checked.png new file mode 100644 index 00000000..fbaf90f2 Binary files /dev/null and b/data/images/checked.png differ diff --git a/data/resources/mainwindow.qrc b/data/resources/mainwindow.qrc index f62c531e..2fc43b13 100644 --- a/data/resources/mainwindow.qrc +++ b/data/resources/mainwindow.qrc @@ -5,5 +5,6 @@ ../images/conn_connected.png ../images/leapfrog.jpg ../images/leap-color-small.png + ../images/checked.png -- cgit v1.2.3 From 7dceb11bcd4cf552938ccfa02daaf6f902ef385b Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 21 Nov 2012 05:15:06 +0900 Subject: tango icons for checking/checked/failed check status --- data/images/Dialog-accept.png | Bin 0 -> 1316 bytes data/images/Dialog-error.png | Bin 0 -> 1380 bytes data/images/Emblem-question.png | Bin 0 -> 1260 bytes data/images/checked.png | Bin 1375 -> 0 bytes data/resources/mainwindow.qrc | 4 +++- 5 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 data/images/Dialog-accept.png create mode 100644 data/images/Dialog-error.png create mode 100644 data/images/Emblem-question.png delete mode 100644 data/images/checked.png (limited to 'data') diff --git a/data/images/Dialog-accept.png b/data/images/Dialog-accept.png new file mode 100644 index 00000000..5a8a0bdb Binary files /dev/null and b/data/images/Dialog-accept.png differ diff --git a/data/images/Dialog-error.png b/data/images/Dialog-error.png new file mode 100644 index 00000000..51da2f5b Binary files /dev/null and b/data/images/Dialog-error.png differ diff --git a/data/images/Emblem-question.png b/data/images/Emblem-question.png new file mode 100644 index 00000000..b2163e5b Binary files /dev/null and b/data/images/Emblem-question.png differ diff --git a/data/images/checked.png b/data/images/checked.png deleted file mode 100644 index fbaf90f2..00000000 Binary files a/data/images/checked.png and /dev/null differ diff --git a/data/resources/mainwindow.qrc b/data/resources/mainwindow.qrc index 2fc43b13..59abdbcd 100644 --- a/data/resources/mainwindow.qrc +++ b/data/resources/mainwindow.qrc @@ -5,6 +5,8 @@ ../images/conn_connected.png ../images/leapfrog.jpg ../images/leap-color-small.png - ../images/checked.png + ../images/Dialog-accept.png + ../images/Dialog-error.png + ../images/Emblem-question.png -- cgit v1.2.3 From 3ea766452e3c4708c724509d03001c0a0314fcf6 Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 28 Nov 2012 01:07:31 +0900 Subject: modified hash of resources --- data/images/leapfrog.jpg | Bin 1767 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 data/images/leapfrog.jpg (limited to 'data') diff --git a/data/images/leapfrog.jpg b/data/images/leapfrog.jpg deleted file mode 100644 index a1ddf4bb..00000000 Binary files a/data/images/leapfrog.jpg and /dev/null differ -- cgit v1.2.3 From 5c0eb246d468454de9e84dca0d08c813459a5a6d Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 19 Dec 2012 07:45:02 +0900 Subject: documentation update! reSTructured (no pun intended) the sphinx docs, and trimmed README --- data/images/favicon.ico | Bin 0 -> 318 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/images/favicon.ico (limited to 'data') diff --git a/data/images/favicon.ico b/data/images/favicon.ico new file mode 100644 index 00000000..b5f3505a Binary files /dev/null and b/data/images/favicon.ico differ -- cgit v1.2.3 From d04c93134ad3daaee0ca280824ab3288bfc5029c Mon Sep 17 00:00:00 2001 From: kali Date: Fri, 16 Nov 2012 22:59:16 +0900 Subject: initial translation example. --- data/leap_client.pro | 2 + data/mkpyqt.py | 271 +++++++++++++++++++++++++++++++++ data/resources/locale.qrc | 5 + data/translations/leap_client_es_ES.qm | Bin 0 -> 1450 bytes data/translations/leap_client_es_ES.ts | 26 ++++ 5 files changed, 304 insertions(+) create mode 100644 data/leap_client.pro create mode 100755 data/mkpyqt.py create mode 100644 data/resources/locale.qrc create mode 100644 data/translations/leap_client_es_ES.qm create mode 100644 data/translations/leap_client_es_ES.ts (limited to 'data') diff --git a/data/leap_client.pro b/data/leap_client.pro new file mode 100644 index 00000000..01fbafcd --- /dev/null +++ b/data/leap_client.pro @@ -0,0 +1,2 @@ +SOURCES += ../src/leap/gui/firstrun/intro.py +TRANSLATIONS += translations/leap_client_es_ES.ts diff --git a/data/mkpyqt.py b/data/mkpyqt.py new file mode 100755 index 00000000..1ce2cd28 --- /dev/null +++ b/data/mkpyqt.py @@ -0,0 +1,271 @@ +#!/usr/bin/env python +# Copyright (c) 2007-10 Qtrac Ltd. All rights reserved. +# This program or module is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 2 of the License, or +# version 3 of the License, or (at your option) any later version. It is +# provided for educational purposes and is distributed in the hope that +# it will be useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +# the GNU General Public License for more details. + +import os +import platform +import stat +import subprocess +import sys +import PyQt4.QtCore + +__version__ = "1.0.4" + +Windows = sys.platform.lower().startswith(("win", "microsoft")) +if Windows: + PATH = os.path.join(os.path.dirname(sys.executable), + "Lib/site-packages/PyQt4") + if os.access(os.path.join(PATH, "bin"), os.R_OK): + PATH = os.path.join(PATH, "bin") +else: + app = PyQt4.QtCore.QCoreApplication([]) + PATH = unicode(app.applicationDirPath()) + del app +if sys.platform.startswith("darwin"): + i = PATH.find("Resources") + if i > -1: + PATH = PATH[:i] + "bin" +PYUIC4 = os.path.join(PATH, "pyuic4") # e.g. PYUIC4 = "/usr/bin/pyuic4" +if sys.platform.startswith("darwin"): + PYUIC4 = os.path.dirname(sys.executable) + i = PYUIC4.find("Resources") + if i > -1: + PYUIC4 = PYUIC4[:i] + "Lib/python2.5/site-packages/PyQt4/uic/pyuic.py" +PYRCC4 = os.path.join(PATH, "pyrcc4") +PYLUPDATE4 = os.path.join(PATH, "pylupdate4") +LRELEASE = "lrelease" +if Windows: + PYUIC4 = PYUIC4.replace("/", "\\") + ".bat" + PYRCC4 = PYRCC4.replace("/", "\\") + ".exe" + PYLUPDATE4 = PYLUPDATE4.replace("/", "\\") + ".exe" + +msg = [] +shell = lambda command: subprocess.Popen(['which', command], + stdout=subprocess.PIPE).communicate() + +if not os.access(PYUIC4, os.F_OK): + PYUIC4 = shell('pyuic4')[0].strip('\n') + if not os.access(PYUIC4, os.F_OK): + msg.append("failed to find pyuic4; tried %s" % PYUIC4) + +if not os.access(PYRCC4, os.F_OK): + PYRCC4 = shell('pyrcc4')[0].strip('\n') + if not os.access(PYRCC4, os.F_OK): + msg.append("failed to find pyrcc4; tried %s" % PYRCC4) + +if not os.access(PYLUPDATE4, os.F_OK): + PYLUPDATE4 = shell('pylupdate4')[0].strip('\n') + if not os.access(PYLUPDATE4, os.F_OK): + msg.append("failed to find pylupdate4; tried %s" % PYLUPDATE4) + +if msg: + print "\n".join(msg) + print "try manually editing this program to put the correct " + \ + "paths in place" + sys.exit() + +Debug = False +Verbose = False + +def usage(): + print """usage: mkpyqt.py [options] [path] + +Options (which can be given in any of the forms shown): +-b --build build [default] +-c --clean clean +-f --force force +-t --translate translate +-r --recurse recurse +-v --verbose verbose +-D --debug debug +path defaults to . + +If executed with no arguments (or with a build argument) it does a +build, i.e., it looks for all *.ui and *.qrc files and makes sure that +the corresponding ui_*.py and qrc_*.py files exist and are up-to-date. + +If executed with clean, deletes all ui_*.py and qrc_*.py files that have +corresponding *.ui and *.qrc files, and all *.pyc and *.pyo files. + +If executed with force, it does a clean followed by a build. + +If building and the translate option is given, after building, it runs +pylupdate4 on all .py and .pyw files it encounters, and then runs lrelease +on all .ts files it encounters. It does not use a .pro file so the .ts +files must be created in the first place, e.g., using pylupdate4 on one +of the source files and using its -ts option. + +WARNING: Do not give any hand-coded files names that match ui_*.py or +qrc_*.py since these will be deleted by mkpyqt.py clean! + +NOTE: If any tool fails to run, e.g., pyuic4, then edit this program and +hard-code the path; the variables with the tool paths are near the top +of the file. + +mkpyqt.py v %s. Copyright (c) 2007-9 Qtrac Ltd. All rights reserved. +""" % __version__ + sys.exit() + + +def report_failure(command, args, process): + msg = "" + ba = process.readAllStandardError() + if not ba.isEmpty(): + msg = ": " + str(QString(ba)) + print "failed", command, " ".join(args), msg + + +def build(path): + for name in os.listdir(path): + source = os.path.join(path, name) + target = None + if source.endswith(".ui"): + target = os.path.join(path, + "ui_" + name.replace(".ui", ".py")) + command = PYUIC4 + elif source.endswith(".qrc"): + target = os.path.join(path, + "qrc_" + name.replace(".qrc", ".py")) + command = PYRCC4 + process = PyQt4.QtCore.QProcess() + if target is not None: + if not os.access(target, os.F_OK) or ( + os.stat(source)[stat.ST_MTIME] > \ + os.stat(target)[stat.ST_MTIME]): + args = ["-o", target, source] + if sys.platform.startswith("darwin") and command == PYUIC4: + command = sys.executable + args = [PYUIC4] + args + if Debug: + print "# %s %s" % (command, " ".join(args)) + else: + process.start(command, args) + if not process.waitForFinished(2 * 60 * 1000): + report_failure(command, args, process) + else: + print source, "->", target + elif Verbose: + print source, "is up-to-date" + + +def clean(path): + deletelist = [] + for name in os.listdir(path): + target = os.path.join(path, name) + source = None + if target.endswith(".py") or target.endswith(".pyc") or \ + target.endswith(".pyo"): + if name.startswith("ui_") and not name[-1] in "oc": + source = os.path.join(path, name[3:-3] + ".ui") + elif name.startswith("qrc_"): + if target[-1] in "oc": + source = os.path.join(path, name[4:-4] + ".qrc") + else: + source = os.path.join(path, name[4:-3] + ".qrc") + elif target[-1] in "oc": + source = target[:-1] + if source is not None: + if os.access(source, os.F_OK): + if Debug: + print "# delete ", target + else: + deletelist.append(target) + else: + print "will not remove '%s' since `%s' not found" % ( + target, source) + if not Debug: + for target in deletelist: + if Verbose: + print "deleted", target + os.remove(target) + + +def translate(path): + files = [] + tsfiles = [] + for name in os.listdir(path): + if name.endswith((".py", ".pyw")): + files.append(os.path.join(path, name)) + elif name.endswith(".ts"): + tsfiles.append(os.path.join(path, name)) + if not tsfiles: + return + verbose = "-verbose" if Verbose else "" + silent = "-silent" if not Verbose else "" + process = PyQt4.QtCore.QProcess() + for ts in tsfiles: + qm = ts[:-3] + ".qm" + command1 = PYLUPDATE4 + args1 = [verbose] + files + ["-ts", ts] + command2 = LRELEASE + args2 = [silent, ts, "-qm", qm] + if Debug: + print "updated", ts + print "generated", qm + else: + process.start(command1, args1) + if not process.waitForFinished(2 * 60 * 1000): + report_failure(command1, args1, process) + process.start(command2, args2) + if not process.waitForFinished(2 * 60 * 1000): + report_failure(command2, args2, process) + + +def apply(recurse, function, path): + if not recurse: + function(path) + else: + for root, dirs, files in os.walk(path): + for dir in dirs: + function(os.path.join(root, dir)) + + +def main(): + global Debug, Verbose + function = build + recurse = False + trans = False + force = False + path = "." + args = sys.argv[1:] + while args: + arg = args.pop(0) + if arg in ("-D", "--debug", "debug"): + Debug = True + elif arg in ("-b", "--build", "build"): + pass # This is the default + elif arg in ("-c", "--clean", "clean"): + function = clean + elif arg in ("-f", "--force", "force"): + force = True + elif arg in ("-t", "--translate", "translate"): + trans = True + elif arg in ("-r", "--recurse", "recurse"): + recurse = True + elif arg in ("-v", "--verbose", "verbose"): + Verbose = True + elif arg in ("-h", "--help", "help"): + usage() + else: + path = arg + if not force: + apply(recurse, function, path) + else: + apply(recurse, clean, path) + apply(recurse, build, path) + if trans and (function == build or force): + apply(recurse, translate, path) + +main() + +# 1.0.1 Fixed bug reported by Brian Downing where paths that contained +# spaces were not handled correctly. +# 1.0.2 Changed default path on Windows to match PyQt 4.4 +# 1.0.3 Tried to make the paths work on Mac OS X diff --git a/data/resources/locale.qrc b/data/resources/locale.qrc new file mode 100644 index 00000000..a2fda78d --- /dev/null +++ b/data/resources/locale.qrc @@ -0,0 +1,5 @@ + + +../translations/leap_client_es_ES.qm + + diff --git a/data/translations/leap_client_es_ES.qm b/data/translations/leap_client_es_ES.qm new file mode 100644 index 00000000..002237e9 Binary files /dev/null and b/data/translations/leap_client_es_ES.qm differ diff --git a/data/translations/leap_client_es_ES.ts b/data/translations/leap_client_es_ES.ts new file mode 100644 index 00000000..86eee980 --- /dev/null +++ b/data/translations/leap_client_es_ES.ts @@ -0,0 +1,26 @@ + + + + IntroPage + + + First run wizard. + Primera conexion. + + + + Now we will guide you through some configuration that is needed before you can connect for the first time.<br><br>If you ever need to modify these options again, you can find the wizard in the '<i>Settings</i>' menu from the main window.<br><br>Do you want to <b>sign up</b> for a new account, or <b>log in</b> with an already existing username?<br> + Vamos a reunir la informacion que necesitas antes de la primera conexion.<br><br>Si alguna vez necesitas modificar estas opciones de nuevo, puedes encontrar este asistente en el menu <i>Opciones</i> en la ventana principal.<br><br>Que deseas hacer ahora? Puedes <b>registrar</b> una nueva cuenta o <b>loguearte</b> con una que ya tienes?<br> + + + + Sign up for a new account. + Registrar una cuenta nueva. + + + + Log In with my credentials. + Loguearme con mi usuario y contrasena. + + + -- cgit v1.2.3 From 06bccc52c84a93407ab4699a2749b24f55fe3061 Mon Sep 17 00:00:00 2001 From: kali Date: Thu, 20 Dec 2012 08:19:55 +0900 Subject: working transifex workflow Closes #666 --- data/leap_client.pro | 20 ++- data/resources/locale.qrc | 2 +- data/translations/README.rst | 8 ++ data/translations/es.qm | Bin 0 -> 6194 bytes data/translations/es.ts | 218 ++++++++++++++++++++++++++++++++ data/translations/leap_client_es_ES.qm | Bin 1450 -> 0 bytes data/translations/leap_client_es_ES.ts | 26 ---- data/ts/README.rst | 14 +++ data/ts/en_US.ts | 219 +++++++++++++++++++++++++++++++++ 9 files changed, 479 insertions(+), 28 deletions(-) create mode 100644 data/translations/README.rst create mode 100644 data/translations/es.qm create mode 100644 data/translations/es.ts delete mode 100644 data/translations/leap_client_es_ES.qm delete mode 100644 data/translations/leap_client_es_ES.ts create mode 100644 data/ts/README.rst create mode 100644 data/ts/en_US.ts (limited to 'data') diff --git a/data/leap_client.pro b/data/leap_client.pro index 01fbafcd..4c559029 100644 --- a/data/leap_client.pro +++ b/data/leap_client.pro @@ -1,2 +1,20 @@ +# qmake file + +# is not there a f*** way of expanding this? other to template with python I mean... + SOURCES += ../src/leap/gui/firstrun/intro.py -TRANSLATIONS += translations/leap_client_es_ES.ts +SOURCES += ../src/leap/gui/firstrun/last.py +SOURCES += ../src/leap/gui/firstrun/login.py +SOURCES += ../src/leap/gui/firstrun/providerinfo.py +SOURCES += ../src/leap/gui/firstrun/providerselect.py +SOURCES += ../src/leap/gui/firstrun/providersetup.py +SOURCES += ../src/leap/gui/firstrun/register.py +SOURCES += ../src/leap/gui/firstrun/regvalidation.py +SOURCES += ../src/leap/gui/firstrun/wizard.py + +# where to generate ts files -- tx will pick from here + +# original file, english + +TRANSLATIONS += ts/en_US.ts + diff --git a/data/resources/locale.qrc b/data/resources/locale.qrc index a2fda78d..53576b49 100644 --- a/data/resources/locale.qrc +++ b/data/resources/locale.qrc @@ -1,5 +1,5 @@ -../translations/leap_client_es_ES.qm +../translations/leap_client_es.qm diff --git a/data/translations/README.rst b/data/translations/README.rst new file mode 100644 index 00000000..1f3dd0b3 --- /dev/null +++ b/data/translations/README.rst @@ -0,0 +1,8 @@ +data/translations +================= + +We expect finished translations (i.e., those downloaded from ``transifex``) to live here. + +Translator object will pick them from here. + +(Actually, from the embedded locale_rc) diff --git a/data/translations/es.qm b/data/translations/es.qm new file mode 100644 index 00000000..8daa2037 Binary files /dev/null and b/data/translations/es.qm differ diff --git a/data/translations/es.ts b/data/translations/es.ts new file mode 100644 index 00000000..84aa6f0a --- /dev/null +++ b/data/translations/es.ts @@ -0,0 +1,218 @@ + + + IntroPage + + + First run wizard. + Primera Conexion. + + + + Now we will guide you through some configuration that is needed before you can connect for the first time.<br><br>If you ever need to modify these options again, you can find the wizard in the '<i>Settings</i>' menu from the main window.<br><br>Do you want to <b>sign up</b> for a new account, or <b>log in</b> with an already existing username?<br> + Vamos a configurar algunas cosas antes de que te puedas conectar por primera vez.<br><br>Si necesitas modificar estas opciones de nuevo, puedes encontrar este asistente en el menu de '<i>Opciones</i>' en la ventana principal.<br><br>Quieres <b>registrar</b> una nueva cuenta, o <b>loguearte</b> con tu usuario?<br> + + + + Sign up for a new account. + Registrar una cuenta nueva. + + + + Log In with my credentials. + Loguearme con un usuario que ya tengo. + + + + LogInPage + + + Username must be in the username@provider form. + El usuario tiene que ser usuario@tu.proveedor + + + + Resolving domain name + Resolviendo nombre de dominio + + + + Authentication error: %s + Error de autenticacion: %s + + + + Credentials validated. + Credenciales validadas. + + + + ProviderInfoPage + + + Provider Info + Info del Proveedor + + + + This is what provider says. + Esto es lo que dice el proveedor. + + + + ProviderSetupValidationPage + + + Provider setup + Configuracion del Proveedor + + + + Doing autoconfig. + Autoconfigurando. + + + + Fetching CA certificate + Obteniendo certificado de la CA + + + + Checking CA fingerprint + Comprobando el fingerprint de la CA + + + + Validating api certificate + Validando certificado de la api + + + + RegisterUserPage + + + Sign Up + Nueva Cuenta + + + + Registration succeeded! + Cuenta creada con exito! + + + + Password does not match.. + Las contrasenas no son iguales.. + + + + Password too short. + Contrasena demasiado corta. + + + + Password too obvious. + Contrasena demasiado obvia. + + + + Error connecting to provider (timeout) + Error conectandose al proveedor (timeout) + + + + Error Connecting to provider (connerr). + Error conectandose al proveedor (connerr). + + + + Error during registration (%s) + Error durante el registro (%s) + + + + Could not register (bad response) + No se pudo registrar (bad response) + + + + Username not available. + Usuario no disponible. + + + + Register a new user with provider %s. + Registrar un nuevo usuario con el proveedor %s. + + + + RegisterUserValidationPage + + + Fetching provider config... + Obteniendo configuracion del proveedor... + + + + Authentication error: %s + Error de autenticacion: %s + + + + Fetching eip certificate + Obteniendo certificado eip + + + + SelectProviderPage + + + Enter Provider + Entra tu Proveedor + + + + Please enter the domain of the provider you want to use for your connection. + Por favor, rellena el dominio del proveedor que quieras usar para tu conexion. + + + + chec&k! + compro&bar! + + + + Server certificate could not be verified. + No se pudo verificar el certificado del servidor. + + + + Certificate validation + Validacion del certificado + + + + checking domain name + comprobando nombre de dominio + + + + checking https connection + comprobando conexion https + + + + Could not get info from provider. + no se pudo obtener info del proveedor + + + + Could not download provider info (refused conn.). + no se pudo obtener info del proveedor (refused conn.). + + + + fetching provider info + obteniendo info del preveedor + + + \ No newline at end of file diff --git a/data/translations/leap_client_es_ES.qm b/data/translations/leap_client_es_ES.qm deleted file mode 100644 index 002237e9..00000000 Binary files a/data/translations/leap_client_es_ES.qm and /dev/null differ diff --git a/data/translations/leap_client_es_ES.ts b/data/translations/leap_client_es_ES.ts deleted file mode 100644 index 86eee980..00000000 --- a/data/translations/leap_client_es_ES.ts +++ /dev/null @@ -1,26 +0,0 @@ - - - - IntroPage - - - First run wizard. - Primera conexion. - - - - Now we will guide you through some configuration that is needed before you can connect for the first time.<br><br>If you ever need to modify these options again, you can find the wizard in the '<i>Settings</i>' menu from the main window.<br><br>Do you want to <b>sign up</b> for a new account, or <b>log in</b> with an already existing username?<br> - Vamos a reunir la informacion que necesitas antes de la primera conexion.<br><br>Si alguna vez necesitas modificar estas opciones de nuevo, puedes encontrar este asistente en el menu <i>Opciones</i> en la ventana principal.<br><br>Que deseas hacer ahora? Puedes <b>registrar</b> una nueva cuenta o <b>loguearte</b> con una que ya tienes?<br> - - - - Sign up for a new account. - Registrar una cuenta nueva. - - - - Log In with my credentials. - Loguearme con mi usuario y contrasena. - - - diff --git a/data/ts/README.rst b/data/ts/README.rst new file mode 100644 index 00000000..3db2d104 --- /dev/null +++ b/data/ts/README.rst @@ -0,0 +1,14 @@ +data/ts +======= + +Here we expect the .ts files generated by typing:: + + $ make translations + +Which will generate the sources (en_US) + +For uploading a source:: + + $ tx push -s + +Translator should pick finished ``.qm`` files from ``data/translations`` instead of this folder. diff --git a/data/ts/en_US.ts b/data/ts/en_US.ts new file mode 100644 index 00000000..f6aadc5c --- /dev/null +++ b/data/ts/en_US.ts @@ -0,0 +1,219 @@ + + + + IntroPage + + + First run wizard. + + + + + Now we will guide you through some configuration that is needed before you can connect for the first time.<br><br>If you ever need to modify these options again, you can find the wizard in the '<i>Settings</i>' menu from the main window.<br><br>Do you want to <b>sign up</b> for a new account, or <b>log in</b> with an already existing username?<br> + + + + + Sign up for a new account. + + + + + Log In with my credentials. + + + + + LogInPage + + + Username must be in the username@provider form. + + + + + Resolving domain name + + + + + Authentication error: %s + + + + + Credentials validated. + + + + + ProviderInfoPage + + + Provider Info + + + + + This is what provider says. + + + + + ProviderSetupValidationPage + + + Provider setup + + + + + Doing autoconfig. + + + + + Fetching CA certificate + + + + + Checking CA fingerprint + + + + + Validating api certificate + + + + + RegisterUserPage + + + Sign Up + + + + + Registration succeeded! + + + + + Password does not match.. + + + + + Password too short. + + + + + Password too obvious. + + + + + Error connecting to provider (timeout) + + + + + Error Connecting to provider (connerr). + + + + + Error during registration (%s) + + + + + Could not register (bad response) + + + + + Username not available. + + + + + Register a new user with provider %s. + + + + + RegisterUserValidationPage + + + Fetching provider config... + + + + + Authentication error: %s + + + + + Fetching eip certificate + + + + + SelectProviderPage + + + Enter Provider + + + + + Please enter the domain of the provider you want to use for your connection. + + + + + chec&k! + + + + + Server certificate could not be verified. + + + + + Certificate validation + + + + + checking domain name + + + + + checking https connection + + + + + Could not get info from provider. + + + + + Could not download provider info (refused conn.). + + + + + fetching provider info + + + + -- cgit v1.2.3 From 654b83db5f050a94f9637fb1ce80df5cb7ed5a38 Mon Sep 17 00:00:00 2001 From: kali Date: Fri, 21 Dec 2012 07:44:59 +0900 Subject: updated "translate" to work in objects other than QObjects --- data/leap_client.pro | 19 ++++++++++--------- data/ts/en_US.ts | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 9 deletions(-) (limited to 'data') diff --git a/data/leap_client.pro b/data/leap_client.pro index 4c559029..3f76d6af 100644 --- a/data/leap_client.pro +++ b/data/leap_client.pro @@ -2,15 +2,16 @@ # is not there a f*** way of expanding this? other to template with python I mean... -SOURCES += ../src/leap/gui/firstrun/intro.py -SOURCES += ../src/leap/gui/firstrun/last.py -SOURCES += ../src/leap/gui/firstrun/login.py -SOURCES += ../src/leap/gui/firstrun/providerinfo.py -SOURCES += ../src/leap/gui/firstrun/providerselect.py -SOURCES += ../src/leap/gui/firstrun/providersetup.py -SOURCES += ../src/leap/gui/firstrun/register.py -SOURCES += ../src/leap/gui/firstrun/regvalidation.py -SOURCES += ../src/leap/gui/firstrun/wizard.py +SOURCES += ../src/leap/base/exceptions.py +SOURCES += ../src/leap/gui/firstrun/intro.py +SOURCES += ../src/leap/gui/firstrun/last.py +SOURCES += ../src/leap/gui/firstrun/login.py +SOURCES += ../src/leap/gui/firstrun/providerinfo.py +SOURCES += ../src/leap/gui/firstrun/providerselect.py +SOURCES += ../src/leap/gui/firstrun/providersetup.py +SOURCES += ../src/leap/gui/firstrun/register.py +SOURCES += ../src/leap/gui/firstrun/regvalidation.py +SOURCES += ../src/leap/gui/firstrun/wizard.py # where to generate ts files -- tx will pick from here diff --git a/data/ts/en_US.ts b/data/ts/en_US.ts index f6aadc5c..a802dd75 100644 --- a/data/ts/en_US.ts +++ b/data/ts/en_US.ts @@ -1,5 +1,38 @@ + + Errors + + + Interface not found + + + + + Looks like your computer is not connected to the internet + + + + + Looks like there are problems with your internet connection + + + + + It looks like there is no internet connection. + + + + + Domain cannot be found + + + + + The Encrypted Connection was lost. Shutting down... + + + IntroPage @@ -216,4 +249,10 @@ + + TestyClass + + + this is a cat + -- cgit v1.2.3 From 4ad663b935fa1845d426dde99a8272942b620e11 Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 2 Jan 2013 18:06:13 +0900 Subject: initial OSX packaging --- data/images/leap-client.icns | Bin 0 -> 27456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/images/leap-client.icns (limited to 'data') diff --git a/data/images/leap-client.icns b/data/images/leap-client.icns new file mode 100644 index 00000000..d5d52cdc Binary files /dev/null and b/data/images/leap-client.icns differ -- cgit v1.2.3 From 8e6a15e2f2d35c606aa0c1a2102c28ceccc23b78 Mon Sep 17 00:00:00 2001 From: antialias Date: Mon, 7 Jan 2013 16:50:52 -0400 Subject: this should be the complete list of userfacing strings. see #665. --- data/ts/en_US.ts | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 88 insertions(+), 6 deletions(-) (limited to 'data') diff --git a/data/ts/en_US.ts b/data/ts/en_US.ts index a802dd75..a7e13dec 100644 --- a/data/ts/en_US.ts +++ b/data/ts/en_US.ts @@ -56,6 +56,24 @@ + + LastPage + + + Connecting to Encrypted Internet Proxy service... + + + + + You are now using an encrypted connection! + + + + + Click '<i>%s</i>' to end the wizard and save your settings. + + + LogInPage @@ -78,6 +96,31 @@ Credentials validated. + + + Log In + + + + + Log in with your credentials. + + + + + User &name: + + + + + &Password: + + + + + Log in + + ProviderInfoPage @@ -177,6 +220,26 @@ Register a new user with provider %s. + + + User &name: + + + + + &Password: + + + + + Password (again): + + + + + &Remember username and password. + + RegisterUserValidationPage @@ -195,6 +258,16 @@ Fetching eip certificate + + + Connecting... + + + + + Checking connection with provider. + + SelectProviderPage @@ -248,11 +321,20 @@ fetching provider info - - - TestyClass - - - this is a cat + + + &Trust this provider certificate. + + + + + Do you want to <b>trust this provider certificate?</b> + + + + + SHA-256 fingerprint: <i>%s</i><br> + + -- cgit v1.2.3 From a5b4b7020daebbcb25c016cf1821818b71a2e457 Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 9 Jan 2013 06:23:45 +0900 Subject: more missed strings to be translated plus initial translation. --- data/leap_client.pro | 4 + data/translations/de.ts | 218 ++++++++++++++++++++++++++++++++++++++++++++++++ data/ts/en_US.ts | 138 +++++++++++++++++++++++++++++- 3 files changed, 357 insertions(+), 3 deletions(-) create mode 100644 data/translations/de.ts (limited to 'data') diff --git a/data/leap_client.pro b/data/leap_client.pro index 3f76d6af..a9a9a932 100644 --- a/data/leap_client.pro +++ b/data/leap_client.pro @@ -3,6 +3,10 @@ # is not there a f*** way of expanding this? other to template with python I mean... SOURCES += ../src/leap/base/exceptions.py +SOURCES += ../src/leap/eip/exceptions.py +SOURCES += ../src/leap/baseapp/eip.py +SOURCES += ../src/leap/baseapp/log.py +SOURCES += ../src/leap/baseapp/systray.py SOURCES += ../src/leap/gui/firstrun/intro.py SOURCES += ../src/leap/gui/firstrun/last.py SOURCES += ../src/leap/gui/firstrun/login.py diff --git a/data/translations/de.ts b/data/translations/de.ts new file mode 100644 index 00000000..f2ab6fa4 --- /dev/null +++ b/data/translations/de.ts @@ -0,0 +1,218 @@ + + + IntroPage + + + First run wizard. + Assistent für erstmaligen Start + + + + Now we will guide you through some configuration that is needed before you can connect for the first time.<br><br>If you ever need to modify these options again, you can find the wizard in the '<i>Settings</i>' menu from the main window.<br><br>Do you want to <b>sign up</b> for a new account, or <b>log in</b> with an already existing username?<br> + Wir werden dich nun durch einige Konfigurationen führen, die du für den ersten Start benötigst.<br><br>Wenn du diese Konfigurationen jemals ändern musst, findest du den Assistenten im '<i>Einstellungen</i>'-Menü des Haupfensters.<br><br>Möchtest du dich für einen neuen Account <b>anmelden</b> oder mit einem bestehenden Usernamen <b>einloggen</b>? + + + + Sign up for a new account. + Für einen neuen Account anmelden. + + + + Log In with my credentials. + Mit bestehenden Daten einloggen. + + + + LogInPage + + + Username must be in the username@provider form. + Der Username muss in der Form username@provider sein. + + + + Resolving domain name + Auflösen des Domain-Namens + + + + Authentication error: %s + Authentifizierungsfehler: %s + + + + Credentials validated. + Anmeldedaten korrekt. + + + + ProviderInfoPage + + + Provider Info + Provider-info + + + + This is what provider says. + Das ist, was der Provider sagt. + + + + ProviderSetupValidationPage + + + Provider setup + Provider-Setup + + + + Doing autoconfig. + Führe autoconfig durch. + + + + Fetching CA certificate + Hole CA-Zertifikat + + + + Checking CA fingerprint + Überprüfe CA-Fingerprint + + + + Validating api certificate + Überprüfe API-Zertifikat + + + + RegisterUserPage + + + Sign Up + Anmelden + + + + Registration succeeded! + Registrierung erfolgreich! + + + + Password does not match.. + Passwort stimmt nicht überien. + + + + Password too short. + Passwort zu kurz + + + + Password too obvious. + Passwort zu simpel. + + + + Error connecting to provider (timeout) + Verbindungsfehler zu Provider (timeout) + + + + Error Connecting to provider (connerr). + Verbindungsfehler zu Provider (connerr) + + + + Error during registration (%s) + Fehler während der Registrierung (%s) + + + + Could not register (bad response) + Konnte nicht registrieren (bad response) + + + + Username not available. + Username nicht verfügbar. + + + + Register a new user with provider %s. + Registriere einen neuen User bei Provider %s + + + + RegisterUserValidationPage + + + Fetching provider config... + Hole Provider-Konfiguration... + + + + Authentication error: %s + Authentifizierungsfehler: %s + + + + Fetching eip certificate + Hole EIP-Zertifikat + + + + SelectProviderPage + + + Enter Provider + Gib Provider ein + + + + Please enter the domain of the provider you want to use for your connection. + Bitte gib die Domain des Providers an, den du für deine Verbindung nutzen möchtest. + + + + chec&k! + + + + + Server certificate could not be verified. + Server-Zertifikat konnte nicht bestätigt werden. + + + + Certificate validation + Zertifikatsüberprüfung + + + + checking domain name + Prüfe Domain-Name + + + + checking https connection + Prüfe HTTPS-Verbindung + + + + Could not get info from provider. + Konnte keine Information vom Provider bekommen. + + + + Could not download provider info (refused conn.). + Konnte Provider-Info nicht herunterladen (refused conn.). + + + + fetching provider info + Hole Provider-Info + + + \ No newline at end of file diff --git a/data/ts/en_US.ts b/data/ts/en_US.ts index a7e13dec..3fdb38da 100644 --- a/data/ts/en_US.ts +++ b/data/ts/en_US.ts @@ -1,5 +1,66 @@ + + EIPConductorAppMixin + + + &Disconnect + + + + + &Connect + + + + + EIPErrors + + + We could not find any authentication agent in your system.<br/>Make sure you have <b>polkit-gnome-authentication-agent-1</b> running and try again. + + + + + We could not find <b>pkexec</b> in your system.<br/> Do you want to try <b>setuid workaround</b>? (<i>DOES NOTHING YET</i>) + + + + + No suitable openvpn command found. <br/>(Might be a permissions problem) + + + + + there is a problem with provider certificate + + + + + an error occurred during configuratio of leap services + + + + + Another OpenVPN Process has been detected.Please close it before starting leap-client + + + + + Server does not allow secure connections + + + + + Server certificate could not be verified + + + + + We could not find your eip certs in the expected path + + + Errors @@ -29,7 +90,7 @@ - The Encrypted Connection was lost. Shutting down... + The Encrypted Connection was lost. @@ -122,15 +183,28 @@ + + LogPaneMixin + + + &Connect + + + + + Disconnected + + + ProviderInfoPage - + Provider Info - + This is what provider says. @@ -337,4 +411,62 @@ + + StatusAwareTrayIconMixin + + + EIP Connection Status + + + + + <b>disconnected</b> + + + + + Encryption ON turn &off + + + + + &Details... + + + + + &About + + + + + About Q&t + + + + + &Quit + + + + + Encryption ON turn o&ff + + + + + Encryption OFF turn &on + + + + + connecting... + + + + + About + + + -- cgit v1.2.3 From f55dcd717a946651492142ed198853b1c667254b Mon Sep 17 00:00:00 2001 From: kali Date: Thu, 10 Jan 2013 02:00:21 +0900 Subject: renamed connection page --- data/leap_client.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'data') diff --git a/data/leap_client.pro b/data/leap_client.pro index a9a9a932..57764a23 100644 --- a/data/leap_client.pro +++ b/data/leap_client.pro @@ -14,7 +14,7 @@ SOURCES += ../src/leap/gui/firstrun/providerinfo.py SOURCES += ../src/leap/gui/firstrun/providerselect.py SOURCES += ../src/leap/gui/firstrun/providersetup.py SOURCES += ../src/leap/gui/firstrun/register.py -SOURCES += ../src/leap/gui/firstrun/regvalidation.py +SOURCES += ../src/leap/gui/firstrun/connect.py SOURCES += ../src/leap/gui/firstrun/wizard.py # where to generate ts files -- tx will pick from here -- cgit v1.2.3 From 5fbdba326b6be7d01025351820c4777b34e4a6cd Mon Sep 17 00:00:00 2001 From: kali Date: Fri, 25 Jan 2013 18:19:29 +0900 Subject: update translations (de) --- data/resources/locale.qrc | 3 +- data/translations/de.qm | Bin 0 -> 6036 bytes data/ts/en_US.ts | 195 ++++++++++++++++++++++++---------------------- 3 files changed, 102 insertions(+), 96 deletions(-) create mode 100644 data/translations/de.qm (limited to 'data') diff --git a/data/resources/locale.qrc b/data/resources/locale.qrc index 53576b49..47fb5243 100644 --- a/data/resources/locale.qrc +++ b/data/resources/locale.qrc @@ -1,5 +1,6 @@ -../translations/leap_client_es.qm +../translations/es.qm +../translations/de.qm diff --git a/data/translations/de.qm b/data/translations/de.qm new file mode 100644 index 00000000..b2f04f22 Binary files /dev/null and b/data/translations/de.qm differ diff --git a/data/ts/en_US.ts b/data/ts/en_US.ts index 3fdb38da..d2cba837 100644 --- a/data/ts/en_US.ts +++ b/data/ts/en_US.ts @@ -1,14 +1,42 @@ + + ConnectionPage + + + Connecting... + + + + + Setting up a encrypted connection with the provider + + + + + Getting EIP configuration files + + + + + Authentication error: %s + + + + + Getting EIP certificate + + + EIPConductorAppMixin - + &Disconnect - + &Connect @@ -40,11 +68,6 @@ an error occurred during configuratio of leap services - - - Another OpenVPN Process has been detected.Please close it before starting leap-client - - Server does not allow secure connections @@ -60,6 +83,11 @@ We could not find your eip certs in the expected path + + + Another OpenVPN Process has been detected. Please close it before starting leap-client + + Errors @@ -98,22 +126,22 @@ IntroPage - First run wizard. + First run wizard - - Now we will guide you through some configuration that is needed before you can connect for the first time.<br><br>If you ever need to modify these options again, you can find the wizard in the '<i>Settings</i>' menu from the main window.<br><br>Do you want to <b>sign up</b> for a new account, or <b>log in</b> with an already existing username?<br> + + Sign up for a new account - - Sign up for a new account. + + Log In with my credentials - - Log In with my credentials. + + Now we will guide you through some configuration that is needed before you can connect for the first time.<br><br>If you ever need to modify these options again, you can find the wizard in the '<i>Settings</i>' menu from the main window.<br><br>Do you want to <b>sign up</b> for a new account, or <b>log in</b> with an already existing username?<br> @@ -125,13 +153,13 @@ - - You are now using an encrypted connection! + + Click '<i>%s</i>' to end the wizard and save your settings. - - Click '<i>%s</i>' to end the wizard and save your settings. + + You are now using an encrypted connection! @@ -162,11 +190,6 @@ Log In - - - Log in with your credentials. - - User &name: @@ -182,16 +205,21 @@ Log in + + + Log in with your credentials + + LogPaneMixin - + &Connect - + Disconnected @@ -200,42 +228,47 @@ ProviderInfoPage - Provider Info + Provider Information - This is what provider says. + Services offered by this provider + + + + + enrollment policy ProviderSetupValidationPage - + Provider setup - - Doing autoconfig. - - - - + Fetching CA certificate - + Checking CA fingerprint - + Validating api certificate + + + Gathering configuration options for this provider + + RegisterUserPage @@ -250,50 +283,45 @@ - + Password does not match.. - + Password too short. - + Password too obvious. - + Error connecting to provider (timeout) - + Error Connecting to provider (connerr). - + Error during registration (%s) - + Could not register (bad response) - + Username not available. - - - Register a new user with provider %s. - - User &name: @@ -314,32 +342,9 @@ &Remember username and password. - - - RegisterUserValidationPage - - - Fetching provider config... - - - - - Authentication error: %s - - - - - Fetching eip certificate - - - - - Connecting... - - - - Checking connection with provider. + + Register a new user with provider <em>%s</em> @@ -350,11 +355,6 @@ Enter Provider - - - Please enter the domain of the provider you want to use for your connection. - - chec&k! @@ -371,43 +371,48 @@ - - checking domain name + + Could not get info from provider. - - checking https connection + + Could not download provider info (refused conn.). - - Could not get info from provider. + + &Trust this provider certificate. - - Could not download provider info (refused conn.). + + Do you want to <b>trust this provider certificate?</b> - - fetching provider info + + SHA-256 fingerprint: <i>%s</i><br> - - &Trust this provider certificate. + + Please enter the domain of the provider you want to use for your connection - - Do you want to <b>trust this provider certificate?</b> + + Checking if it is a valid provider - - SHA-256 fingerprint: <i>%s</i><br> + + Checking for a secure connection + + + + + Getting info from the provider -- cgit v1.2.3 From 10eab60579a1f4bf4044104b530e6cc86ed4ae13 Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 30 Jan 2013 06:14:01 +0900 Subject: add new assets for connection status --- data/images/conn_connected.png | Bin 3031 -> 426 bytes data/images/conn_connecting.png | Bin 3213 -> 712 bytes data/images/conn_error.png | Bin 3571 -> 1429 bytes data/images/leap-color-small.png | Bin 11909 -> 10100 bytes data/resources/mainwindow.qrc | 1 - 5 files changed, 1 deletion(-) (limited to 'data') diff --git a/data/images/conn_connected.png b/data/images/conn_connected.png index 6a5bcba9..a5d20497 100644 Binary files a/data/images/conn_connected.png and b/data/images/conn_connected.png differ diff --git a/data/images/conn_connecting.png b/data/images/conn_connecting.png index 35cb0f6a..31b6e617 100644 Binary files a/data/images/conn_connecting.png and b/data/images/conn_connecting.png differ diff --git a/data/images/conn_error.png b/data/images/conn_error.png index ac1391df..85669af6 100644 Binary files a/data/images/conn_error.png and b/data/images/conn_error.png differ diff --git a/data/images/leap-color-small.png b/data/images/leap-color-small.png index afabe2c9..bc9d4e7f 100644 Binary files a/data/images/leap-color-small.png and b/data/images/leap-color-small.png differ diff --git a/data/resources/mainwindow.qrc b/data/resources/mainwindow.qrc index 59abdbcd..58f59c9d 100644 --- a/data/resources/mainwindow.qrc +++ b/data/resources/mainwindow.qrc @@ -3,7 +3,6 @@ ../images/conn_error.png ../images/conn_connecting.png ../images/conn_connected.png - ../images/leapfrog.jpg ../images/leap-color-small.png ../images/Dialog-accept.png ../images/Dialog-error.png -- cgit v1.2.3