You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(10) |
Jul
(24) |
Aug
(93) |
Sep
(261) |
Oct
(257) |
Nov
(218) |
Dec
(95) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(184) |
Feb
(87) |
Mar
(155) |
Apr
(398) |
May
(201) |
Jun
(35) |
Jul
(68) |
Aug
(92) |
Sep
(52) |
Oct
(111) |
Nov
(135) |
Dec
(116) |
2009 |
Jan
(225) |
Feb
(204) |
Mar
(113) |
Apr
(137) |
May
(220) |
Jun
(199) |
Jul
(196) |
Aug
(98) |
Sep
(100) |
Oct
(179) |
Nov
(164) |
Dec
(72) |
2010 |
Jan
(59) |
Feb
(61) |
Mar
(64) |
Apr
(159) |
May
(107) |
Jun
(252) |
Jul
(180) |
Aug
(96) |
Sep
(82) |
Oct
(58) |
Nov
(43) |
Dec
(53) |
2011 |
Jan
(39) |
Feb
(18) |
Mar
(33) |
Apr
(66) |
May
(48) |
Jun
(124) |
Jul
(112) |
Aug
(62) |
Sep
(45) |
Oct
(102) |
Nov
(47) |
Dec
(37) |
2012 |
Jan
(22) |
Feb
(18) |
Mar
(1) |
Apr
(5) |
May
(18) |
Jun
(13) |
Jul
(9) |
Aug
(38) |
Sep
(3) |
Oct
(7) |
Nov
(24) |
Dec
(6) |
2013 |
Jan
(1) |
Feb
(14) |
Mar
(1) |
Apr
(2) |
May
(3) |
Jun
(4) |
Jul
(9) |
Aug
(4) |
Sep
(7) |
Oct
|
Nov
(1) |
Dec
(4) |
2014 |
Jan
(9) |
Feb
(2) |
Mar
|
Apr
|
May
(4) |
Jun
(2) |
Jul
|
Aug
|
Sep
(6) |
Oct
|
Nov
(1) |
Dec
|
2015 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sc...@us...> - 2012-11-19 15:51:02
|
Revision: 21805 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21805&view=rev Author: scro34 Date: 2012-11-19 15:50:56 +0000 (Mon, 19 Nov 2012) Log Message: ----------- Demo application (trunk) runs under qx 2.1 now Modified Paths: -------------- trunk/qooxdoo-contrib/RetroTheme/trunk/Manifest.json trunk/qooxdoo-contrib/RetroTheme/trunk/config.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/Manifest.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/config.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/Manifest.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/config.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/Manifest.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/config.json trunk/qooxdoo-contrib/RetroTheme/trunk/source/class/retrotheme/theme/Decoration.js Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/Manifest.json 2012-11-19 15:49:21 UTC (rev 21804) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/Manifest.json 2012-11-19 15:50:56 UTC (rev 21805) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["2.0"] + "qooxdoo-versions": ["2.0", "2.1"] }, "provides" : Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/config.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/config.json 2012-11-19 15:49:21 UTC (rev 21804) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/config.json 2012-11-19 15:50:56 UTC (rev 21805) @@ -29,7 +29,7 @@ { "APPLICATION" : "retrotheme", "APPLICATION_MAIN_CLASS" : "${APPLICATION}.demo.Demo", - "QOOXDOO_PATH" : "../../qooxdoo/1.6", + "QOOXDOO_PATH" : "../../qooxdoo/2.1", "QXTHEME" : "qx.theme.Modern", "API_EXCLUDE" : ["qx.test.*", "retrotheme.demo.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/Manifest.json 2012-11-19 15:49:21 UTC (rev 21804) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/Manifest.json 2012-11-19 15:50:56 UTC (rev 21805) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["2.0"] + "qooxdoo-versions": ["2.0", "2.1"] }, "provides" : Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/config.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/config.json 2012-11-19 15:49:21 UTC (rev 21804) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/config.json 2012-11-19 15:50:56 UTC (rev 21805) @@ -24,6 +24,7 @@ "profiling", "source", "source-all", + "source-hybrid", "test", "test-source", "translation" @@ -32,7 +33,7 @@ "let" : { "APPLICATION" : "retrotheme.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/2.0.1", + "QOOXDOO_PATH" : "../../../../qooxdoo/2.1", "QXTHEME" : "retrotheme.RetroThemeBlue", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/Manifest.json 2012-11-19 15:49:21 UTC (rev 21804) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/Manifest.json 2012-11-19 15:50:56 UTC (rev 21805) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["2.0"] + "qooxdoo-versions": ["2.0", "2.1"] }, "provides" : Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/config.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/config.json 2012-11-19 15:49:21 UTC (rev 21804) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/config.json 2012-11-19 15:50:56 UTC (rev 21805) @@ -32,7 +32,7 @@ "let" : { "APPLICATION" : "retrotheme.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/2.0.1", + "QOOXDOO_PATH" : "../../../../qooxdoo/2.1", "QXTHEME" : "retrotheme.RetroThemeDark", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/Manifest.json 2012-11-19 15:49:21 UTC (rev 21804) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/Manifest.json 2012-11-19 15:50:56 UTC (rev 21805) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["2.0"] + "qooxdoo-versions": ["2.0", "2.1"] }, "provides" : Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/config.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/config.json 2012-11-19 15:49:21 UTC (rev 21804) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/config.json 2012-11-19 15:50:56 UTC (rev 21805) @@ -32,7 +32,7 @@ "let" : { "APPLICATION" : "retrotheme.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/2.0.1", + "QOOXDOO_PATH" : "../../../../qooxdoo/2.1", "QXTHEME" : "retrotheme.RetroThemeRed", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/source/class/retrotheme/theme/Decoration.js =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/source/class/retrotheme/theme/Decoration.js 2012-11-19 15:49:21 UTC (rev 21804) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/source/class/retrotheme/theme/Decoration.js 2012-11-19 15:50:56 UTC (rev 21805) @@ -497,7 +497,7 @@ style : { baseImage : "decoration/shadow/shadow.png", - insets : [ 2, 4, 4, 2 ] + insets : [ 4, 8, 9, 8 ] } }, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sc...@us...> - 2012-11-19 15:49:27
|
Revision: 21804 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21804&view=rev Author: scro34 Date: 2012-11-19 15:49:21 +0000 (Mon, 19 Nov 2012) Log Message: ----------- Demo application runs under qx 2.1 now Modified Paths: -------------- trunk/qooxdoo-contrib/GraydientTheme/trunk/Manifest.json trunk/qooxdoo-contrib/GraydientTheme/trunk/config.json trunk/qooxdoo-contrib/GraydientTheme/trunk/demo/default/Manifest.json trunk/qooxdoo-contrib/GraydientTheme/trunk/demo/default/config.json Modified: trunk/qooxdoo-contrib/GraydientTheme/trunk/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/GraydientTheme/trunk/Manifest.json 2012-11-19 15:46:10 UTC (rev 21803) +++ trunk/qooxdoo-contrib/GraydientTheme/trunk/Manifest.json 2012-11-19 15:49:21 UTC (rev 21804) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.4", "1.5", "1.6", "2.0"] + "qooxdoo-versions": ["1.4", "1.5", "1.6", "2.0", "2.1"] }, "provides" : Modified: trunk/qooxdoo-contrib/GraydientTheme/trunk/config.json =================================================================== --- trunk/qooxdoo-contrib/GraydientTheme/trunk/config.json 2012-11-19 15:46:10 UTC (rev 21803) +++ trunk/qooxdoo-contrib/GraydientTheme/trunk/config.json 2012-11-19 15:49:21 UTC (rev 21804) @@ -29,7 +29,7 @@ { "APPLICATION" : "graydienttheme", "APPLICATION_MAIN_CLASS" : "${APPLICATION}.demo.Demo", - "QOOXDOO_PATH" : "../../qooxdoo/2.0.1", + "QOOXDOO_PATH" : "../../qooxdoo/2.1", "QXTHEME" : "graydienttheme.theme.Theme", "API_EXCLUDE" : ["qx.test.*", "graydienttheme.demo.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/GraydientTheme/trunk/demo/default/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/GraydientTheme/trunk/demo/default/Manifest.json 2012-11-19 15:46:10 UTC (rev 21803) +++ trunk/qooxdoo-contrib/GraydientTheme/trunk/demo/default/Manifest.json 2012-11-19 15:49:21 UTC (rev 21804) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.4", "1.5", "1.6", "2.0"] + "qooxdoo-versions": ["1.4", "1.5", "1.6", "2.0", "2.1"] }, "provides" : Modified: trunk/qooxdoo-contrib/GraydientTheme/trunk/demo/default/config.json =================================================================== --- trunk/qooxdoo-contrib/GraydientTheme/trunk/demo/default/config.json 2012-11-19 15:46:10 UTC (rev 21803) +++ trunk/qooxdoo-contrib/GraydientTheme/trunk/demo/default/config.json 2012-11-19 15:49:21 UTC (rev 21804) @@ -37,7 +37,7 @@ "let" : { "APPLICATION" : "graydienttheme.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/2.0.1", + "QOOXDOO_PATH" : "../../../../qooxdoo/2.1", "QXTHEME" : "graydienttheme.GraydientTheme", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sc...@us...> - 2012-11-19 15:46:21
|
Revision: 21803 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21803&view=rev Author: scro34 Date: 2012-11-19 15:46:10 +0000 (Mon, 19 Nov 2012) Log Message: ----------- Demo application (trunk) runs under qx 2.1 now Modified Paths: -------------- trunk/qooxdoo-contrib/DarkTheme/trunk/Manifest.json trunk/qooxdoo-contrib/DarkTheme/trunk/config.json trunk/qooxdoo-contrib/DarkTheme/trunk/demo/default/Manifest.json trunk/qooxdoo-contrib/DarkTheme/trunk/demo/default/config.json trunk/qooxdoo-contrib/DarkTheme/trunk/source/class/darktheme/theme/Appearance.js trunk/qooxdoo-contrib/DarkTheme/trunk/source/class/darktheme/theme/Decoration.js Modified: trunk/qooxdoo-contrib/DarkTheme/trunk/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/DarkTheme/trunk/Manifest.json 2012-11-17 17:36:23 UTC (rev 21802) +++ trunk/qooxdoo-contrib/DarkTheme/trunk/Manifest.json 2012-11-19 15:46:10 UTC (rev 21803) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["2.0"] + "qooxdoo-versions": ["2.0", "2.1"] }, "provides" : Modified: trunk/qooxdoo-contrib/DarkTheme/trunk/config.json =================================================================== --- trunk/qooxdoo-contrib/DarkTheme/trunk/config.json 2012-11-17 17:36:23 UTC (rev 21802) +++ trunk/qooxdoo-contrib/DarkTheme/trunk/config.json 2012-11-19 15:46:10 UTC (rev 21803) @@ -29,7 +29,7 @@ { "APPLICATION" : "darktheme", "APPLICATION_MAIN_CLASS" : "${APPLICATION}.demo.Demo", - "QOOXDOO_PATH" : "../../qooxdoo/2.0.1", + "QOOXDOO_PATH" : "../../qooxdoo/2.1", "QXTHEME" : "qx.theme.Modern", "API_EXCLUDE" : ["qx.test.*", "darktheme.demo.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/DarkTheme/trunk/demo/default/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/DarkTheme/trunk/demo/default/Manifest.json 2012-11-17 17:36:23 UTC (rev 21802) +++ trunk/qooxdoo-contrib/DarkTheme/trunk/demo/default/Manifest.json 2012-11-19 15:46:10 UTC (rev 21803) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["2.0"] + "qooxdoo-versions": ["2.0", "2.1"] }, "provides" : Modified: trunk/qooxdoo-contrib/DarkTheme/trunk/demo/default/config.json =================================================================== --- trunk/qooxdoo-contrib/DarkTheme/trunk/demo/default/config.json 2012-11-17 17:36:23 UTC (rev 21802) +++ trunk/qooxdoo-contrib/DarkTheme/trunk/demo/default/config.json 2012-11-19 15:46:10 UTC (rev 21803) @@ -33,7 +33,7 @@ "let" : { "APPLICATION" : "darktheme.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/2.0.1", + "QOOXDOO_PATH" : "../../../../qooxdoo/2.1", "QXTHEME" : "darktheme.DarkTheme", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/DarkTheme/trunk/source/class/darktheme/theme/Appearance.js =================================================================== --- trunk/qooxdoo-contrib/DarkTheme/trunk/source/class/darktheme/theme/Appearance.js 2012-11-17 17:36:23 UTC (rev 21802) +++ trunk/qooxdoo-contrib/DarkTheme/trunk/source/class/darktheme/theme/Appearance.js 2012-11-19 15:46:10 UTC (rev 21803) @@ -46,6 +46,15 @@ "app-header-label": "label", + "app-splitpane" : { + alias : "splitpane", + style : function(states) { + return { + padding: 0 + } + } + }, + /* --------------------------------------------------------------------------- BUTTON Modified: trunk/qooxdoo-contrib/DarkTheme/trunk/source/class/darktheme/theme/Decoration.js =================================================================== --- trunk/qooxdoo-contrib/DarkTheme/trunk/source/class/darktheme/theme/Decoration.js 2012-11-17 17:36:23 UTC (rev 21802) +++ trunk/qooxdoo-contrib/DarkTheme/trunk/source/class/darktheme/theme/Decoration.js 2012-11-19 15:46:10 UTC (rev 21803) @@ -510,7 +510,8 @@ style : { baseImage : "decoration/shadow/shadow.png", - insets : [ 3, 4, 4, 3 ] + // insets : [ 3, 4, 4, 3 ] + insets : [ 4, 8, 8, 8 ] } }, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spa...@us...> - 2012-11-17 17:36:32
|
Revision: 21802 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21802&view=rev Author: spackers Date: 2012-11-17 17:36:23 +0000 (Sat, 17 Nov 2012) Log Message: ----------- updates to allow parameters to be set per-widget Modified Paths: -------------- trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/AbstractHandler.js trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/File.js trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/MUploadButton.js trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/UploadMgr.js Added Paths: ----------- trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/ trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.0c43f625212e.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.10727727e37b.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.3b9f77b4afb0.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.4821091c8b73.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.585bfe46d962.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.8ac13fc6c2b9.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.9e6e97c144ae.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.dd1c84a96c8d.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.fe6652ba8a59.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.js trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/MParameters.js Added: trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.0c43f625212e.js =================================================================== --- trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.0c43f625212e.js (rev 0) +++ trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.0c43f625212e.js 2012-11-17 17:36:23 UTC (rev 21802) @@ -0,0 +1,12479 @@ +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Sebastian Werner (wpbasti) + * Fabian Jakobs (fjakobs) + +************************************************************************ */ + +/** + * This mixin redirects all children handling methods to a child widget of the + * including class. This is e.g. used in {@link qx.ui.window.Window} to add + * child widgets directly to the window pane. + * + * The including class must implement the method <code>getChildrenContainer</code>, + * which has to return the widget, to which the child widgets should be added. + */ +qx.Mixin.define("qx.ui.core.MRemoteChildrenHandling", +{ + /* + ***************************************************************************** + MEMBERS + ***************************************************************************** + */ + + members : + { + /** + * Forward the call with the given function name to the children container + * + * @param functionName {String} name of the method to forward + * @param a1 {var} first argument of the method to call + * @param a2 {var} second argument of the method to call + * @param a3 {var} third argument of the method to call + * @return {var} The return value of the forward method + */ + __forward : function(functionName, a1, a2, a3) + { + var container = this.getChildrenContainer(); + if (container === this) { + functionName = "_" + functionName; + } + return (container[functionName])(a1, a2, a3); + }, + + + /** + * Returns the children list + * + * @return {LayoutItem[]} The children array (Arrays are + * reference types, please to not modify them in-place) + */ + getChildren : function() { + return this.__forward("getChildren"); + }, + + + /** + * Whether the widget contains children. + * + * @return {Boolean} Returns <code>true</code> when the widget has children. + */ + hasChildren : function() { + return this.__forward("hasChildren"); + }, + + + /** + * Adds a new child widget. + * + * The supported keys of the layout options map depend on the layout manager + * used to position the widget. The options are documented in the class + * documentation of each layout manager {@link qx.ui.layout}. + * + * @param child {LayoutItem} the item to add. + * @param options {Map?null} Optional layout data for item. + * @return {Widget} This object (for chaining support) + */ + add : function(child, options) { + return this.__forward("add", child, options); + }, + + + /** + * Remove the given child item. + * + * @param child {LayoutItem} the item to remove + * @return {Widget} This object (for chaining support) + */ + remove : function(child) { + return this.__forward("remove", child); + }, + + + /** + * Remove all children. + * + * @return {void} + */ + removeAll : function() { + return this.__forward("removeAll"); + }, + + + /** + * Returns the index position of the given item if it is + * a child item. Otherwise it returns <code>-1</code>. + * + * This method works on the widget's children list. Some layout managers + * (e.g. {@link qx.ui.layout.HBox}) use the children order as additional + * layout information. Other layout manager (e.g. {@link qx.ui.layout.Grid}) + * ignore the children order for the layout process. + * + * @param child {LayoutItem} the item to query for + * @return {Integer} The index position or <code>-1</code> when + * the given item is no child of this layout. + */ + indexOf : function(child) { + return this.__forward("indexOf", child); + }, + + + /** + * Add a child at the specified index + * + * This method works on the widget's children list. Some layout managers + * (e.g. {@link qx.ui.layout.HBox}) use the children order as additional + * layout information. Other layout manager (e.g. {@link qx.ui.layout.Grid}) + * ignore the children order for the layout process. + * + * @param child {LayoutItem} item to add + * @param index {Integer} Index, at which the item will be inserted + * @param options {Map?null} Optional layout data for item. + */ + addAt : function(child, index, options) { + this.__forward("addAt", child, index, options); + }, + + + /** + * Add an item before another already inserted item + * + * This method works on the widget's children list. Some layout managers + * (e.g. {@link qx.ui.layout.HBox}) use the children order as additional + * layout information. Other layout manager (e.g. {@link qx.ui.layout.Grid}) + * ignore the children order for the layout process. + * + * @param child {LayoutItem} item to add + * @param before {LayoutItem} item before the new item will be inserted. + * @param options {Map?null} Optional layout data for item. + */ + addBefore : function(child, before, options) { + this.__forward("addBefore", child, before, options); + }, + + + /** + * Add an item after another already inserted item + * + * This method works on the widget's children list. Some layout managers + * (e.g. {@link qx.ui.layout.HBox}) use the children order as additional + * layout information. Other layout manager (e.g. {@link qx.ui.layout.Grid}) + * ignore the children order for the layout process. + * + * @param child {LayoutItem} item to add + * @param after {LayoutItem} item, after which the new item will be inserted + * @param options {Map?null} Optional layout data for item. + */ + addAfter : function(child, after, options) { + this.__forward("addAfter", child, after, options); + }, + + + /** + * Remove the item at the specified index. + * + * This method works on the widget's children list. Some layout managers + * (e.g. {@link qx.ui.layout.HBox}) use the children order as additional + * layout information. Other layout manager (e.g. {@link qx.ui.layout.Grid}) + * ignore the children order for the layout process. + * + * @param index {Integer} Index of the item to remove. + * @return {qx.ui.core.LayoutItem} The removed item + */ + removeAt : function(index) { + return this.__forward("removeAt", index); + } + } +}); +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2008 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Sebastian Werner (wpbasti) + +************************************************************************ */ + +/** + * Generic selection manager to bring rich desktop like selection behavior + * to widgets and low-level interactive controls. + * + * The selection handling supports both Shift and Ctrl/Meta modifies like + * known from native applications. + */ +qx.Class.define("qx.ui.core.selection.Abstract", +{ + type : "abstract", + extend : qx.core.Object, + + + + /* + ***************************************************************************** + CONSTRUCTOR + ***************************************************************************** + */ + + construct : function() + { + this.base(arguments); + + // {Map} Internal selection storage + this.__selection = {}; + }, + + + + + /* + ***************************************************************************** + EVENTS + ***************************************************************************** + */ + + events : + { + /** Fires after the selection was modified. Contains the selection under the data property. */ + "changeSelection" : "qx.event.type.Data" + }, + + + + + + /* + ***************************************************************************** + PROPERTIES + ***************************************************************************** + */ + + properties : + { + /** + * Selects the selection mode to use. + * + * * single: One or no element is selected + * * multi: Multi items could be selected. Also allows empty selections. + * * additive: Easy Web-2.0 selection mode. Allows multiple selections without modifier keys. + * * one: If possible always exactly one item is selected + */ + mode : + { + check : [ "single", "multi", "additive", "one" ], + init : "single", + apply : "_applyMode" + }, + + + /** + * Enable drag selection (multi selection of items through + * dragging the mouse in pressed states). + * + * Only possible for the modes <code>multi</code> and <code>additive</code> + */ + drag : + { + check : "Boolean", + init : false + }, + + + /** + * Enable quick selection mode, where no click is needed to change the selection. + * + * Only possible for the modes <code>single</code> and <code>one</code>. + */ + quick : + { + check : "Boolean", + init : false + } + }, + + + + + + /* + ***************************************************************************** + MEMBERS + ***************************************************************************** + */ + + members : + { + __scrollStepX : 0, + __scrollStepY : 0, + __scrollTimer : null, + __frameScroll : null, + __lastRelX : null, + __lastRelY : null, + __frameLocation : null, + __dragStartX : null, + __dragStartY : null, + __inCapture : null, + __mouseX : null, + __mouseY : null, + __moveDirectionX : null, + __moveDirectionY : null, + __selectionModified : null, + __selectionContext : null, + __leadItem : null, + __selection : null, + __anchorItem : null, + __mouseDownOnSelected : null, + + // A flag that signals an user interaction, which means the selection change + // was triggered by mouse or keyboard [BUG #3344] + _userInteraction : false, + + __oldScrollTop : null, + + /* + --------------------------------------------------------------------------- + USER APIS + --------------------------------------------------------------------------- + */ + + /** + * Returns the selection context. One of <code>click</code>, + * <code>quick</code>, <code>drag</code> or <code>key</code> or + * <code>null</code>. + * + * @return {String} One of <code>click</code>, <code>quick</code>, + * <code>drag</code> or <code>key</code> or <code>null</code> + */ + getSelectionContext : function() { + return this.__selectionContext; + }, + + + /** + * Selects all items of the managed object. + * + * @return {void} + */ + selectAll : function() + { + var mode = this.getMode(); + if (mode == "single" || mode == "one") { + throw new Error("Can not select all items in selection mode: " + mode); + } + + this._selectAllItems(); + this._fireChange(); + }, + + + /** + * Selects the given item. Replaces current selection + * completely with the new item. + * + * Use {@link #addItem} instead if you want to add new + * items to an existing selection. + * + * @param item {Object} Any valid item + * @return {void} + */ + selectItem : function(item) + { + this._setSelectedItem(item); + + var mode = this.getMode(); + if (mode !== "single" && mode !== "one") + { + this._setLeadItem(item); + this._setAnchorItem(item); + } + + this._scrollItemIntoView(item); + this._fireChange(); + }, + + + /** + * Adds the given item to the existing selection. + * + * Use {@link #selectItem} instead if you want to replace + * the current selection. + * + * @param item {Object} Any valid item + * @return {void} + */ + addItem : function(item) + { + var mode = this.getMode(); + if (mode === "single" || mode === "one") { + this._setSelectedItem(item); + } + else + { + if (this._getAnchorItem() == null) { + this._setAnchorItem(item); + } + + this._setLeadItem(item); + this._addToSelection(item); + } + + this._scrollItemIntoView(item); + this._fireChange(); + }, + + + /** + * Removes the given item from the selection. + * + * Use {@link #clearSelection} when you want to clear + * the whole selection at once. + * + * @param item {Object} Any valid item + * @return {void} + */ + removeItem : function(item) + { + this._removeFromSelection(item); + + if (this.getMode() === "one" && this.isSelectionEmpty()) + { + var selected = this._applyDefaultSelection(); + + // Do not fire any event in this case. + if (selected == item) { + return; + } + } + + if (this.getLeadItem() == item) { + this._setLeadItem(null); + } + + if (this._getAnchorItem() == item) { + this._setAnchorItem(null); + } + + this._fireChange(); + }, + + + /** + * Selects an item range between two given items. + * + * @param begin {Object} Item to start with + * @param end {Object} Item to end at + * @return {void} + */ + selectItemRange : function(begin, end) + { + var mode = this.getMode(); + if (mode == "single" || mode == "one") { + throw new Error("Can not select multiple items in selection mode: " + mode); + } + + this._selectItemRange(begin, end); + + this._setAnchorItem(begin); + + this._setLeadItem(end); + this._scrollItemIntoView(end); + + this._fireChange(); + }, + + + /** + * Clears the whole selection at once. Also + * resets the lead and anchor items and their + * styles. + * + * @return {void} + */ + clearSelection : function() + { + if (this.getMode() == "one") + { + var selected = this._applyDefaultSelection(true); + if (selected != null) { + return; + } + } + + this._clearSelection(); + this._setLeadItem(null); + this._setAnchorItem(null); + + this._fireChange(); + }, + + + /** + * Replaces current selection with given array of items. + * + * Please note that in single selection scenarios it is more + * efficient to directly use {@link #selectItem}. + * + * @param items {Array} Items to select + */ + replaceSelection : function(items) + { + var mode = this.getMode(); + if (mode == "one" || mode === "single") + { + if (items.length > 1) { + throw new Error("Could not select more than one items in mode: " + mode + "!"); + } + + if (items.length == 1) { + this.selectItem(items[0]); + } else { + this.clearSelection(); + } + return; + } + else + { + this._replaceMultiSelection(items); + } + }, + + + /** + * Get the selected item. This method does only work in <code>single</code> + * selection mode. + * + * @return {Object} The selected item. + */ + getSelectedItem : function() + { + var mode = this.getMode(); + if (mode === "single" || mode === "one") + { + var result = this._getSelectedItem(); + return result != undefined ? result : null; + } + + throw new Error("The method getSelectedItem() is only supported in 'single' and 'one' selection mode!"); + }, + + + /** + * Returns an array of currently selected items. + * + * Note: The result is only a set of selected items, so the order can + * differ from the sequence in which the items were added. + * + * @return {Object[]} List of items. + */ + getSelection : function() { + return qx.lang.Object.getValues(this.__selection); + }, + + + /** + * Returns the selection sorted by the index in the + * container of the selection (the assigned widget) + * + * @return {Object[]} Sorted list of items + */ + getSortedSelection : function() + { + var children = this.getSelectables(); + var sel = qx.lang.Object.getValues(this.__selection); + + sel.sort(function(a, b) { + return children.indexOf(a) - children.indexOf(b); + }); + + return sel; + }, + + + /** + * Detects whether the given item is currently selected. + * + * @param item {var} Any valid selectable item + * @return {Boolean} Whether the item is selected + */ + isItemSelected : function(item) + { + var hash = this._selectableToHashCode(item); + return this.__selection[hash] !== undefined; + }, + + + /** + * Whether the selection is empty + * + * @return {Boolean} Whether the selection is empty + */ + isSelectionEmpty : function() { + return qx.lang.Object.isEmpty(this.__selection); + }, + + + /** + * Invert the selection. Select the non selected and deselect the selected. + */ + invertSelection: function() { + var mode = this.getMode(); + if (mode === "single" || mode === "one") { + throw new Error("The method invertSelection() is only supported in 'multi' and 'additive' selection mode!"); + } + + var selectables = this.getSelectables(); + for (var i = 0; i < selectables.length; i++) + { + this._toggleInSelection(selectables[i]); + } + + this._fireChange(); + }, + + + + /* + --------------------------------------------------------------------------- + LEAD/ANCHOR SUPPORT + --------------------------------------------------------------------------- + */ + + /** + * Sets the lead item. Generally the item which was last modified + * by the user (clicked on etc.) + * + * @param value {Object} Any valid item or <code>null</code> + * @return {void} + */ + _setLeadItem : function(value) + { + var old = this.__leadItem; + + if (old !== null) { + this._styleSelectable(old, "lead", false); + } + + if (value !== null) { + this._styleSelectable(value, "lead", true); + } + + this.__leadItem = value; + }, + + + /** + * Returns the current lead item. Generally the item which was last modified + * by the user (clicked on etc.) + * + * @return {Object} The lead item or <code>null</code> + */ + getLeadItem : function() { + return this.__leadItem !== null ? this.__leadItem : null; + }, + + + /** + * Sets the anchor item. This is the item which is the starting + * point for all range selections. Normally this is the item which was + * clicked on the last time without any modifier keys pressed. + * + * @param value {Object} Any valid item or <code>null</code> + * @return {void} + */ + _setAnchorItem : function(value) + { + var old = this.__anchorItem; + + if (old != null) { + this._styleSelectable(old, "anchor", false); + } + + if (value != null) { + this._styleSelectable(value, "anchor", true); + } + + this.__anchorItem = value; + }, + + + /** + * Returns the current anchor item. This is the item which is the starting + * point for all range selections. Normally this is the item which was + * clicked on the last time without any modifier keys pressed. + * + * @return {Object} The anchor item or <code>null</code> + */ + _getAnchorItem : function() { + return this.__anchorItem !== null ? this.__anchorItem : null; + }, + + + + + + /* + --------------------------------------------------------------------------- + BASIC SUPPORT + --------------------------------------------------------------------------- + */ + + /** + * Whether the given item is selectable. + * + * @param item {var} Any item + * @return {Boolean} <code>true</code> when the item is selectable + */ + _isSelectable : function(item) { + throw new Error("Abstract method call: _isSelectable()"); + }, + + + /** + * Finds the selectable instance from a mouse event + * + * @param event {qx.event.type.Mouse} The mouse event + * @return {Object|null} The resulting selectable + */ + _getSelectableFromMouseEvent : function(event) + { + var target = event.getTarget(); + // check for target (may be null when leaving the viewport) [BUG #4378] + if (target && this._isSelectable(target)) { + return target; + } + return null; + }, + + + /** + * Returns an unique hashcode for the given item. + * + * @param item {var} Any item + * @return {String} A valid hashcode + */ + _selectableToHashCode : function(item) { + throw new Error("Abstract method call: _selectableToHashCode()"); + }, + + + /** + * Updates the style (appearance) of the given item. + * + * @param item {var} Item to modify + * @param type {String} Any of <code>selected</code>, <code>anchor</code> or <code>lead</code> + * @param enabled {Boolean} Whether the given style should be added or removed. + * @return {void} + */ + _styleSelectable : function(item, type, enabled) { + throw new Error("Abstract method call: _styleSelectable()"); + }, + + + /** + * Enables capturing of the container. + * + * @return {void} + */ + _capture : function() { + throw new Error("Abstract method call: _capture()"); + }, + + + /** + * Releases capturing of the container + * + * @return {void} + */ + _releaseCapture : function() { + throw new Error("Abstract method call: _releaseCapture()"); + }, + + + + + + + /* + --------------------------------------------------------------------------- + DIMENSION AND LOCATION + --------------------------------------------------------------------------- + */ + + /** + * Returns the location of the container + * + * @return {Map} Map with the keys <code>top</code>, <code>right</code>, + * <code>bottom</code> and <code>left</code>. + */ + _getLocation : function() { + throw new Error("Abstract method call: _getLocation()"); + }, + + + /** + * Returns the dimension of the container (available scrolling space). + * + * @return {Map} Map with the keys <code>width</code> and <code>height</code>. + */ + _getDimension : function() { + throw new Error("Abstract method call: _getDimension()"); + }, + + + /** + * Returns the relative (to the container) horizontal location of the given item. + * + * @param item {var} Any item + * @return {Map} A map with the keys <code>left</code> and <code>right</code>. + */ + _getSelectableLocationX : function(item) { + throw new Error("Abstract method call: _getSelectableLocationX()"); + }, + + + /** + * Returns the relative (to the container) horizontal location of the given item. + * + * @param item {var} Any item + * @return {Map} A map with the keys <code>top</code> and <code>bottom</code>. + */ + _getSelectableLocationY : function(item) { + throw new Error("Abstract method call: _getSelectableLocationY()"); + }, + + + + + + + /* + --------------------------------------------------------------------------- + SCROLL SUPPORT + --------------------------------------------------------------------------- + */ + + /** + * Returns the scroll position of the container. + * + * @return {Map} Map with the keys <code>left</code> and <code>top</code>. + */ + _getScroll : function() { + throw new Error("Abstract method call: _getScroll()"); + }, + + + /** + * Scrolls by the given offset + * + * @param xoff {Integer} Horizontal offset to scroll by + * @param yoff {Integer} Vertical offset to scroll by + * @return {void} + */ + _scrollBy : function(xoff, yoff) { + throw new Error("Abstract method call: _scrollBy()"); + }, + + + /** + * Scrolls the given item into the view (make it visible) + * + * @param item {var} Any item + * @return {void} + */ + _scrollItemIntoView : function(item) { + throw new Error("Abstract method call: _scrollItemIntoView()"); + }, + + + + + + + /* + --------------------------------------------------------------------------- + QUERY SUPPORT + --------------------------------------------------------------------------- + */ + + /** + * Returns all selectable items of the container. + * + * @param all {boolean} true for all selectables, false for the + * selectables the user can interactively select + * @return {Array} A list of items + */ + getSelectables : function(all) { + throw new Error("Abstract method call: getSelectables()"); + }, + + + /** + * Returns all selectable items between the two given items. + * + * The items could be given in any order. + * + * @param item1 {var} First item + * @param item2 {var} Second item + * @return {Array} List of items + */ + _getSelectableRange : function(item1, item2) { + throw new Error("Abstract method call: _getSelectableRange()"); + }, + + + /** + * Returns the first selectable item. + * + * @return {var} The first selectable item + */ + _getFirstSelectable : function() { + throw new Error("Abstract method call: _getFirstSelectable()"); + }, + + + /** + * Returns the last selectable item. + * + * @return {var} The last selectable item + */ + _getLastSelectable : function() { + throw new Error("Abstract method call: _getLastSelectable()"); + }, + + + /** + * Returns a selectable item which is related to the given + * <code>item</code> through the value of <code>relation</code>. + * + * @param item {var} Any item + * @param relation {String} A valid relation: <code>above</code>, + * <code>right</code>, <code>under</code> or <code>left</code> + * @return {var} The related item + */ + _getRelatedSelectable : function(item, relation) { + throw new Error("Abstract method call: _getRelatedSelectable()"); + }, + + + /** + * Returns the item which should be selected on pageUp/pageDown. + * + * May also scroll to the needed position. + * + * @param lead {var} The current lead item + * @param up {Boolean?false} Which page key was pressed: + * <code>up</code> or <code>down</code>. + * @return {void} + */ + _getPage : function(lead, up) { + throw new Error("Abstract method call: _getPage()"); + }, + + + + + /* + --------------------------------------------------------------------------- + PROPERTY APPLY ROUTINES + --------------------------------------------------------------------------- + */ + + // property apply + _applyMode : function(value, old) + { + this._setLeadItem(null); + this._setAnchorItem(null); + + this._clearSelection(); + + // Mode "one" requires one selected item + if (value === "one") { + this._applyDefaultSelection(true); + } + + this._fireChange(); + }, + + + + + + + /* + --------------------------------------------------------------------------- + MOUSE SUPPORT + --------------------------------------------------------------------------- + */ + + /** + * This method should be connected to the <code>mouseover</code> event + * of the managed object. + * + * @param event {qx.event.type.Mouse} A valid mouse event + * @return {void} + */ + handleMouseOver : function(event) + { + // All browsers (except Opera) fire a native "mouseover" event when a scroll appears + // by keyboard interaction. We have to ignore the event to avoid a selection for + // "mouseover" (quick selection). For more details see [BUG #4225] + if(this.__oldScrollTop != null && + this.__oldScrollTop != this._getScroll().top) + { + this.__oldScrollTop = null; + return; + } + + // this is a method invoked by an user interaction, so be careful to + // set / clear the mark this._userInteraction [BUG #3344] + this._userInteraction = true; + + if (!this.getQuick()) { + this._userInteraction = false; + return; + } + + var mode = this.getMode(); + if (mode !== "one" && mode !== "single") { + this._userInteraction = false; + return; + } + + var item = this._getSelectableFromMouseEvent(event); + if (item === null) { + this._userInteraction = false; + return; + } + + this._setSelectedItem(item); + + // Be sure that item is in view + // This does not feel good when mouseover is used + // this._scrollItemIntoView(item); + + // Fire change event as needed + this._fireChange("quick"); + + this._userInteraction = false; + }, + + + /** + * This method should be connected to the <code>mousedown</code> event + * of the managed object. + * + * @param event {qx.event.type.Mouse} A valid mouse event + * @return {void} + */ + handleMouseDown : function(event) + { + // this is a method invoked by an user interaction, so be careful to + // set / clear the mark this._userInteraction [BUG #3344] + this._userInteraction = true; + + var item = this._getSelectableFromMouseEvent(event); + if (item === null) { + this._userInteraction = false; + return; + } + + // Read in keyboard modifiers + var isCtrlPressed = event.isCtrlPressed() || + (qx.core.Environment.get("os.name") == "osx" && event.isMetaPressed()); + var isShiftPressed = event.isShiftPressed(); + + // Clicking on selected items deselect on mouseup, not on mousedown + if (this.isItemSelected(item) && !isShiftPressed && !isCtrlPressed && !this.getDrag()) + { + this.__mouseDownOnSelected = item; + this._userInteraction = false; + return; + } + else + { + this.__mouseDownOnSelected = null; + } + + // Be sure that item is in view + this._scrollItemIntoView(item); + + // Action depends on selected mode + switch(this.getMode()) + { + case "single": + case "one": + this._setSelectedItem(item); + break; + + case "additive": + this._setLeadItem(item); + this._setAnchorItem(item); + this._toggleInSelection(item); + break; + + case "multi": + // Update lead item + this._setLeadItem(item); + + // Create/Update range selection + if (isShiftPressed) + { + var anchor = this._getAnchorItem(); + if (anchor === null) + { + anchor = this._getFirstSelectable(); + this._setAnchorItem(anchor); + } + + this._selectItemRange(anchor, item, isCtrlPressed); + } + + // Toggle in selection + else if (isCtrlPressed) + { + this._setAnchorItem(item); + this._toggleInSelection(item); + } + + // Replace current selection + else + { + this._setAnchorItem(item); + this._setSelectedItem(item); + } + + break; + } + + + // Drag selection + var mode = this.getMode(); + if ( + this.getDrag() && + mode !== "single" && + mode !== "one" && + !isShiftPressed && + !isCtrlPressed + ) + { + // Cache location/scroll data + this.__frameLocation = this._getLocation(); + this.__frameScroll = this._getScroll(); + + // Store position at start + this.__dragStartX = event.getDocumentLeft() + this.__frameScroll.left; + this.__dragStartY = event.getDocumentTop() + this.__frameScroll.top; + + // Switch to capture mode + this.__inCapture = true; + this._capture(); + } + + + // Fire change event as needed + this._fireChange("click"); + + this._userInteraction = false; + }, + + + /** + * This method should be connected to the <code>mouseup</code> event + * of the managed object. + * + * @param event {qx.event.type.Mouse} A valid mouse event + * @return {void} + */ + handleMouseUp : function(event) + { + // this is a method invoked by an user interaction, so be careful to + // set / clear the mark this._userInteraction [BUG #3344] + this._userInteraction = true; + + // Read in keyboard modifiers + var isCtrlPressed = event.isCtrlPressed() || + (qx.core.Environment.get("os.name") == "osx" && event.isMetaPressed()); + var isShiftPressed = event.isShiftPressed(); + + if (!isCtrlPressed && !isShiftPressed && this.__mouseDownOnSelected != null) + { + var item = this._getSelectableFromMouseEvent(event); + if (item === null || !this.isItemSelected(item)) { + this._userInteraction = false; + return; + } + + var mode = this.getMode(); + if (mode === "additive") + { + // Remove item from selection + this._removeFromSelection(item); + } + else + { + // Replace selection + this._setSelectedItem(item); + + if (this.getMode() === "multi") + { + this._setLeadItem(item); + this._setAnchorItem(item); + } + } + this._userInteraction = false; + } + + // Cleanup operation + this._cleanup(); + }, + + + /** + * This method should be connected to the <code>losecapture</code> event + * of the managed object. + * + * @param event {qx.event.type.Mouse} A valid mouse event + * @return {void} + */ + handleLoseCapture : function(event) { + this._cleanup(); + }, + + + /** + * This method should be connected to the <code>mousemove</code> event + * of the managed object. + * + * @param event {qx.event.type.Mouse} A valid mouse event + * @return {void} + */ + handleMouseMove : function(event) + { + // Only relevant when capturing is enabled + if (!this.__inCapture) { + return; + } + + + // Update mouse position cache + this.__mouseX = event.getDocumentLeft(); + this.__mouseY = event.getDocumentTop(); + + // this is a method invoked by an user interaction, so be careful to + // set / clear the mark this._userInteraction [BUG #3344] + this._userInteraction = true; + + // Detect move directions + var dragX = this.__mouseX + this.__frameScroll.left; + if (dragX > this.__dragStartX) { + this.__moveDirectionX = 1; + } else if (dragX < this.__dragStartX) { + this.__moveDirectionX = -1; + } else { + this.__moveDirectionX = 0; + } + + var dragY = this.__mouseY + this.__frameScroll.top; + if (dragY > this.__dragStartY) { + this.__moveDirectionY = 1; + } else if (dragY < this.__dragStartY) { + this.__moveDirectionY = -1; + } else { + this.__moveDirectionY = 0; + } + + + // Update scroll steps + var location = this.__frameLocation; + + if (this.__mouseX < location.left) { + this.__scrollStepX = this.__mouseX - location.left; + } else if (this.__mouseX > location.right) { + this.__scrollStepX = this.__mouseX - location.right; + } else { + this.__scrollStepX = 0; + } + + if (this.__mouseY < location.top) { + this.__scrollStepY = this.__mouseY - location.top; + } else if (this.__mouseY > location.bottom) { + this.__scrollStepY = this.__mouseY - location.bottom; + } else { + this.__scrollStepY = 0; + } + + + // Dynamically create required timer instance + if (!this.__scrollTimer) + { + this.__scrollTimer = new qx.event.Timer(100); + this.__scrollTimer.addListener("interval", this._onInterval, this); + } + + + // Start interval + this.__scrollTimer.start(); + + + // Auto select based on new cursor position + this._autoSelect(); + + event.stopPropagation(); + this._userInteraction = false; + }, + + + /** + * This method should be connected to the <code>addItem</code> event + * of the managed object. + * + * @param e {qx.event.type.Data} The event object + * @return {void} + */ + handleAddItem : function(e) + { + var item = e.getData(); + if (this.getMode() === "one" && this.isSelectionEmpty()) { + this.addItem(item); + } + }, + + + /** + * This method should be connected to the <code>removeItem</code> event + * of the managed object. + * + * @param e {qx.event.type.Data} The event object + * @return {void} + */ + handleRemoveItem : function(e) { + this.removeItem(e.getData()); + }, + + + + + /* + --------------------------------------------------------------------------- + MOUSE SUPPORT INTERNALS + --------------------------------------------------------------------------- + */ + + /** + * Stops all timers, release capture etc. to cleanup drag selection + */ + _cleanup : function() + { + if (!this.getDrag() && this.__inCapture) { + return; + } + + // Fire change event if needed + if (this.__selectionModified) { + this._fireChange("click"); + } + + // Remove flags + delete this.__inCapture; + delete this.__lastRelX; + delete this.__lastRelY; + + // Stop capturing + this._releaseCapture(); + + // Stop timer + if (this.__scrollTimer) { + this.__scrollTimer.stop(); + } + }, + + + /** + * Event listener for timer used by drag selection + * + * @param e {qx.event.type.Event} Timer event + */ + _onInterval : function(e) + { + // Scroll by defined block size + this._scrollBy(this.__scrollStepX, this.__scrollStepY); + + // TODO: Optimization: Detect real scroll changes first? + + // Update scroll cache + this.__frameScroll = this._getScroll(); + + // Auto select based on new scroll position and cursor + this._autoSelect(); + }, + + + /** + * Automatically selects items based on the mouse movement during a drag selection + */ + _autoSelect : function() + { + var inner = this._getDimension(); + + // Get current relative Y position and compare it with previous one + var relX = Math.max(0, Math.min(this.__mouseX - this.__frameLocation.left, inner.width)) + this.__frameScroll.left; + var relY = Math.max(0, Math.min(this.__mouseY - this.__frameLocation.top, inner.height)) + this.__frameScroll.top; + + // Compare old and new relative coordinates (for performance reasons) + if (this.__lastRelX === relX && this.__lastRelY === relY) { + return; + } + this.__lastRelX = relX; + this.__lastRelY = relY; + + // Cache anchor + var anchor = this._getAnchorItem(); + var lead = anchor; + + + // Process X-coordinate + var moveX = this.__moveDirectionX; + var nextX, locationX; + + while (moveX !== 0) + { + // Find next item to process depending on current scroll direction + nextX = moveX > 0 ? + this._getRelatedSelectable(lead, "right") : + this._getRelatedSelectable(lead, "left"); + + // May be null (e.g. first/last item) + if (nextX !== null) + { + locationX = this._getSelectableLocationX(nextX); + + // Continue when the item is in the visible area + if ( + (moveX > 0 && locationX.left <= relX) || + (moveX < 0 && locationX.right >= relX) + ) + { + lead = nextX; + continue; + } + } + + // Otherwise break + break; + } + + + // Process Y-coordinate + var moveY = this.__moveDirectionY; + var nextY, locationY; + + while (moveY !== 0) + { + // Find next item to process depending on current scroll direction + nextY = moveY > 0 ? + this._getRelatedSelectable(lead, "under") : + this._getRelatedSelectable(lead, "above"); + + // May be null (e.g. first/last item) + if (nextY !== null) + { + locationY = this._getSelectableLocationY(nextY); + + // Continue when the item is in the visible area + if ( + (moveY > 0 && locationY.top <= relY) || + (moveY < 0 && locationY.bottom >= relY) + ) + { + lead = nextY; + continue; + } + } + + // Otherwise break + break; + } + + + // Differenciate between the two supported modes + var mode = this.getMode(); + if (mode === "multi") + { + // Replace current selection with new range + this._selectItemRange(anchor, lead); + } + else if (mode === "additive") + { + // Behavior depends on the fact whether the + // anchor item is selected or not + if (this.isItemSelected(anchor)) { + this._selectItemRange(anchor, lead, true); + } else { + this._deselectItemRange(anchor, lead); + } + + // Improve performance. This mode does not rely + // on full ranges as it always extend the old + // selection/deselection. + this._setAnchorItem(lead); + } + + + // Fire change event as needed + this._fireChange("drag"); + }, + + + + + + + /* + --------------------------------------------------------------------------- + KEYBOARD SUPPORT + --------------------------------------------------------------------------- + */ + + /** + * {Map} All supported navigation keys + * + * @lint ignoreReferenceField(__navigationKeys) + */ + __navigationKeys : + { + Home : 1, + Down : 1 , + Right : 1, + PageDown : 1, + End : 1, + Up : 1, + Left : 1, + PageUp : 1 + }, + + + /** + * This method should be connected to the <code>keypress</code> event + * of the managed object. + * + * @param event {qx.event.type.KeySequence} A valid key sequence event + * @return {void} + */ + handleKeyPress : function(event) + { + // this is a method invoked by an user interaction, so be careful to + // set / clear the mark this._userInteraction [BUG #3344] + this._userInteraction = true; + + var current, next; + var key = event.getKeyIdentifier(); + var mode = this.getMode(); + + // Support both control keys on Mac + var isCtrlPressed = event.isCtrlPressed() || + (qx.core.Environment.get("os.name") == "osx" && event.isMetaPressed()); + var isShiftPressed = event.isShiftPressed(); + + var consumed = false; + + if (key === "A" && isCtrlPressed) + { + if (mode !== "single" && mode !== "one") + { + this._selectAllItems(); + consumed = true; + } + } + else if (key === "Escape") + { + if (mode !== "single" && mode !== "one") + { + this._clearSelection(); + consumed = true; + } + } + else if (key === "Space") + { + var lead = this.getLeadItem(); + if (lead != null && !isShiftPressed) + { + if (isCtrlPressed || mode === "additive") { + this._toggleInSelection(lead); + } else { + this._setSelectedItem(lead); + } + consumed = true; + } + } + else if (this.__navigationKeys[key]) + { + consumed = true; + if (mode === "single" || mode == "one") { + current = this._getSelectedItem(); + } else { + current = this.getLeadItem(); + } + + if (current !== null) + { + switch(key) + { + case "Home": + next = this._getFirstSelectable(); + break; + + case "End": + next = this._getLastSelectable(); + break; + + case "Up": + next = this._getRelatedSelectable(current, "above"); + break; + + case "Down": + next = this._getRelatedSelectable(current, "under"); + break; + + case "Left": + next = this._getRelatedSelectable(current, "left"); + break; + + case "Right": + next = this._getRelatedSelectable(current, "right"); + break; + + case "PageUp": + next = this._getPage(current, true); + break; + + case "PageDown": + next = this._getPage(current, false); + break; + } + } + else + { + switch(key) + { + case "Home": + case "Down": + case "Right": + case "PageDown": + next = this._getFirstSelectable(); + break; + + case "End": + case "Up": + case "Left": + case "PageUp": + next = this._getLastSelectable(); + break; + } + } + + // Process result + if (next !== null) + { + switch(mode) + { + case "single": + case "one": + this._setSelectedItem(next); + break; + + case "additive": + this._setLeadItem(next); + break; + + case "multi": + if (isShiftPressed) + { + var anchor = this._getAnchorItem(); + if (anchor === null) { + this._setAnchorItem(anchor = this._getFirstSelectable()); + } + + this._setLeadItem(next); + this._selectItemRange(anchor, next, isCtrlPressed); + } + else + { + this._setAnchorItem(next); + this._setLeadItem(next); + + if (!isCtrlPressed) { + this._setSelectedItem(next); + } + } + + break; + } + + this.__oldScrollTop = this._getScroll().top; + this._scrollItemIntoView(next); + } + } + + + if (consumed) + { + // Stop processed events + event.stop(); + + // Fire change event as needed + this._fireChange("key"); + } + this._userInteraction = false; + }, + + + + + + + /* + --------------------------------------------------------------------------- + SUPPORT FOR ITEM RANGES + --------------------------------------------------------------------------- + */ + + /** + * Adds all items to the selection + */ + _selectAllItems : function() + { + var range = this.getSelectables(); + for (var i=0, l=range.length; i<l; i++) { + this._addToSelection(range[i]); + } + }, + + + /** + * Clears current selection + */ + _clearSelection : function() + { + var selection = this.__selection; + for (var hash in selection) { + this._removeFromSelection(selection[hash]); + } + this.__selection = {}; + }, + + + /** + * Select a range from <code>item1</code> to <code>item2</code>. + * + * @param item1 {Object} Start with this item + * @param item2 {Object} End with this item + * @param extend {Boolean?false} Whether the current + * selection should be replaced or extended. + */ + _selectItemRange : function(item1, item2, extend) + { + var range = this._getSelectableRange(item1, item2); + + // Remove items which are not in the detected range + if (!extend) + { + var selected = this.__selection; + var mapped = this.__rangeToMap(range); + + for (var hash in selected) + { + if (!mapped[hash]) { + this._removeFromSelection(selected[hash]); + } + } + } + + // Add new items to the selection + for (var i=0, l=range.length; i<l; i++) { + this._addToSelection(range[i]); + } + }, + + + /** + * Deselect all items between <code>item1</code> and <code>item2</code>. + * + * @param item1 {Object} Start with this item + * @param item2 {Object} End with this item + */ + _deselectItemRange : function(item1, item2) + { + var range = this._getSelectableRange(item1, item2); + for (var i=0, l=range.length; i<l; i++) { + this._removeFromSelection(range[i]); + } + }, + + + /** + * Internal method to convert a range to a map of hash + * codes for faster lookup during selection compare routines. + * + * @param range {Array} List of selectable items + */ + __rangeToMap : function(range) + { + var mapped = {}; + var item; + + for (var i=0, l=range.length; i<l; i++) + { + item = range[i]; + mapped[this._selectableToHashCode(item)] = item; + } + + return mapped; + }, + + + + + + + /* + --------------------------------------------------------------------------- + SINGLE ITEM QUERY AND MODIFICATION + --------------------------------------------------------------------------- + */ + + /** + * Returns the first selected item. Only makes sense + * when using manager in single selection mode. + * + * @return {var} The selected item (or <code>null</code>) + */ + _getSelectedItem : function() + { + for (var hash in this.__selection) { + return this.__selection[hash]; + } + + return null; + }, + + + /** + * Replace current selection with given item. + * + * @param item {var} Any valid selectable item + * @return {void} + */ + _setSelectedItem : function(item) + { + if (this._isSelectable(item)) + { + // If already selected try to find out if this is the only item + var current = this.__selection; + var hash = this._selectableToHashCode(item); + + if (!current[hash] || qx.lang.Object.hasMinLength(current, 2)) + { + this._clearSelection(); + this._addToSelection(item); + } + } + }, + + + + + + + + /* + --------------------------------------------------------------------------- + MODIFY ITEM SELECTION + --------------------------------------------------------------------------- + */ + + /** + * Adds an item to the current selection. + * + * @param item {Object} Any item + */ + _addToSelection : function(item) + { + var hash = this._selectableToHashCode(item); + + if (this.__selection[hash] == null && this._isSelectable(item)) + { + this.__selection[hash] = item; + this._styleSelectable(item, "selected", true); + + this.__selectionModified = true; + } + }, + + + /** + * Toggles the item e.g. remove it when already selected + * or select it when currently not. + * + * @param item {Object} Any item + */ + _toggleInSelection : function(item) + { + var hash = this._selectableToHashCode(item); + + if (this.__selection[hash] == null) + { + this.__selection[hash] = item; + this._styleSelectable(item, "selected", true); + } + else + { + delete this.__selection[hash]; + this._styleSelectable(item, "selected", false); + } + + this.__selectionModified = true; + }, + + + /** + * Removes the given item from the current selection. + * + * @param item {Object} Any item + */ + _removeFromSelection : function(item) + { + var hash = this._selectableToHashCode(item); + + if (this.__selection[hash] != null) + { + delete this.__selection[hash]; + this._styleSelectable(item, "selected", false); + + this.__selectionModified = true; + } + }, + + + /** + * Replaces current selection with items from given array. + * + * @param items {Array} List of items to select + */ + _replaceMultiSelection : function(items) + { + var modified = false; + + // Build map from hash codes and filter non-selectables + var selectable, hash; + var incoming = {}; + for (var i=0, l=items.length; i<l; i++) + { + selectable = items[i]; + if (this._isSelectable(selectable)) + { + hash = this._selectableToHashCode(selectable); + incoming[hash] = selectable; + } + } + + // Remember last + var first = items[0]; + var last = selectable; + + // Clear old entries from map + var current = this.__selection; + for (var hash in current) + { + if (incoming[hash]) + { + // Reduce map to make next loop faster + delete incoming[hash]; + } + else + { + // update internal map + selectable = current[hash]; + delete current[hash]; + + // apply styling + this._styleSelectable(selectable, "selected", false); + + // remember that the selection has been modified + modified = true; + } + } + + // Add remaining selectables to selection + for (var hash in incoming) + { + // update internal map + selectable = current[hash] = incoming[hash]; + + // apply styling + this._styleSelectable(selectable, "selected", true); + + // remember that the selection has been modified + modified = true; + } + + // Do not do anything if selection is equal to previous one + if (!modified) { + return false; + } + + // Scroll last incoming item into view + this._scrollItemIntoView(last); + + // Reset anchor and lead item + this._setLeadItem(first); + this._setAnchorItem(first); + + // Finally fire change event + this.__selectionModified = true; + this._fireChange(); + }, + + + /** + * Fires the selection change event if the selection has + * been modified. + * + * @param context {String} One of <code>click</code>, <code>quick</code>, + * <code>drag</code> or <code>key</code> or <code>null</code> + */ + _fireChange : function(context) + { + if (this.__selectionModified) + { + // Store context + this.__selectionContext = context || null; + + // Fire data event which contains the current selection + this.fireDataEvent("changeSelection", this.getSelection()); + delete this.__selectionModified; + } + }, + + + /** + * Applies the default selection. The default item is the first item. + * + * @param force {Boolean} Whether the default selection sould forced. + * + * @return {var} The selected item. + */ + _applyDefaultSelection : function(force) + { + if (force === true || this.getMode() === "one" && this.isSelectionEmpty()) + { + var first = this._getFirstSelectable(); + if (first != null) { + this.selectItem(first); + } + return first; + } + return null; + } + }, + + + /* + ***************************************************************************** + DESTRUCTOR + ***************************************************************************** + */ + + destruct : function() + { + this._disposeObjects("__scrollTimer"); + this.__selection = this.__mouseDownOnSelected = this.__anchorItem = null; + this.__leadItem = null; + } +}); +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2008 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Sebastian Werner (wpbasti) + +************************************************************************ */ + +/** + * A selection manager, which handles the selection in widgets. + */ +qx.Class.define("qx.ui.core.selection.Widget", +{ + extend : qx.ui.core.selection.Abstract, + + + + /* + ***************************************************************************** + CONSTRUCTOR + ***************************************************************************** + */ + + /** + * @param widget {qx.ui.core.Widget} The widget to connect to + */ + construct : function(widget) + { + this.base(arguments); + + this.__widget = widget; + }, + + + + + + /* + ***************************************************************************** + MEMBERS + ***************************************************************************** + */ + + members : + { + + __widget : null, + + /* + --------------------------------... [truncated message content] |
From: <d_w...@us...> - 2012-11-16 16:18:43
|
Revision: 21801 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21801&view=rev Author: d_wagner Date: 2012-11-16 16:18:36 +0000 (Fri, 16 Nov 2012) Log Message: ----------- check if ACE is enabled Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_tutorial.js Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_tutorial.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_tutorial.js 2012-11-16 16:11:22 UTC (rev 21800) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_tutorial.js 2012-11-16 16:18:36 UTC (rev 21801) @@ -23,6 +23,7 @@ buttonCloseWindow : "//div[contains(@style, 'close.gif')]", buttonForward : "//div[contains(@style, 'media-skip-forward.png')]", jsErrorMessage : "//div[contains(@style, 'red')]", + aceContent : "//div[contains(@class, 'ace_content')]", aceIconWarning : "//div[contains(@class, 'ace_warning')]", aceIconError : "//div[contains(@class, 'ace_error')]", windowConfirm : "qxhv=[@classname='tutorial.view.Confirm']", @@ -44,7 +45,7 @@ simulation.Simulation.prototype.testTutorial = function(shortTitle, longTitle) { - this.log("Testing tutorial '" + shortTitle + " : " + longTitle + "'", "info"); + this.log("Testing tutorial '" + shortTitle + ": " + longTitle + "'", "info"); try { this.selectTutorial(longTitle); } catch(ex) { @@ -83,7 +84,9 @@ this.log("Step " + step + " title not found!", "error"); } - editorContentLength = this.getEditorContentLength(); + if (this.hasAce()) { + editorContentLength = this.getEditorContentLength(); + } this.qxClick(locators.buttonHelp); if (!this.__replaceCodeConfirmed) { @@ -94,13 +97,15 @@ this.log("Confirmed code replacement", "info"); } - if (editorContentLength == this.getEditorContentLength()) { + if (this.hasAce() && editorContentLength == this.getEditorContentLength()) { this.log("Editor content did not change!", "error"); return; } this.logJsError(); - this.logAceError(); + if (this.hasAce()) { + this.logAceError(); + } }; simulation.Simulation.prototype.logAceError = function() { @@ -124,7 +129,8 @@ simulation.Simulation.prototype.getEditorContentLength = function() { - var getLength = "selenium.browserbot.findElement('//div[contains(@class, \"ace_content\")]').innerHTML.length"; + var locator = locators.aceContent.replace(/'/g, "\\'"); + var getLength = "selenium.browserbot.findElement('" + locator + "').innerHTML.length"; var result = this.__sel.getEval(getLength); return parseInt(result, 10); }; @@ -201,6 +207,11 @@ return titlesList; }; +simulation.Simulation.prototype.hasAce = function() +{ + return this.isElementPresent(locators.aceContent); +}; + // - Main -------------------------------------------------------------------- (function() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2012-11-16 16:11:33
|
Revision: 21800 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21800&view=rev Author: d_wagner Date: 2012-11-16 16:11:22 +0000 (Fri, 16 Nov 2012) Log Message: ----------- Added waitForElementNotPresent Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js 2012-11-16 15:54:02 UTC (rev 21799) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js 2012-11-16 16:11:22 UTC (rev 21800) @@ -779,6 +779,19 @@ }; /** + * Repeatedly checks if an element is not present. If the element is still present + * when the timeout is reached, an exception is thrown. + * @param locator {String} Element locator + * @param timeout {Integer} Timeout in milliseconds + * @throws {Error} if the element was still present when the timeout was reached + */ +simulation.Simulation.prototype.waitForElementNotPresent = function(locator, timeout) +{ + var condition = '!selenium.isElementPresent("' + locator + '")'; + this.__sel.waitForCondition(condition, timeout || 5000); +}; + +/** * Checks if an element is visible, i.e. "display" is not "none" and "visibility" * is not "hidden" * @param locator {String} Element locator This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2012-11-16 15:54:13
|
Revision: 21799 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21799&view=rev Author: d_wagner Date: 2012-11-16 15:54:02 +0000 (Fri, 16 Nov 2012) Log Message: ----------- Test for the Tutorial application Added Paths: ----------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_tutorial.js Added: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_tutorial.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_tutorial.js (rev 0) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_tutorial.js 2012-11-16 15:54:02 UTC (rev 21799) @@ -0,0 +1,251 @@ +var baseConf = { + 'autName' : 'Tutorial', + 'debug' : true +}; + +var args = arguments ? arguments : ""; +var simSvn = baseConf.simulatorSvn; +for (var i=0; i<args.length; i++) { + if (args[i].indexOf('simulatorSvn') >= 0) { + simSvn = args[i].substr(args[i].indexOf('simulatorSvn=') + 13); + } +} + +load([simSvn + "/trunk/tool/selenium/simulation/Simulation.js"]); +var mySim = new simulation.Simulation(baseConf, args); + +var locators = { + buttonBackward : "//div[contains(@style, 'media-skip-backward.png')]", + buttonHelp : "//div[text() = 'Help me out']", + buttonRun : "//div[contains(@style, 'media-playback-start.png')]", + buttonSelectTutorial : "//div[text() = 'Select Tutorial']", + windowSelectTutorial : "qxhv=[@classname='tutorial.view.SelectionWindow']", + buttonCloseWindow : "//div[contains(@style, 'close.gif')]", + buttonForward : "//div[contains(@style, 'media-skip-forward.png')]", + jsErrorMessage : "//div[contains(@style, 'red')]", + aceIconWarning : "//div[contains(@class, 'ace_warning')]", + aceIconError : "//div[contains(@class, 'ace_error')]", + windowConfirm : "qxhv=[@classname='tutorial.view.Confirm']", + windowConfirmCheckbox : "qxhv=[@classname='tutorial.view.Confirm']/qx.ui.form.CheckBox", + windowConfirmTitle : "//div[text() = 'Confirm']", + windowConfirmButtonCancel : "qxhv=[@classname='tutorial.view.Confirm']/[@label='Cancel']", + windowConfirmButtonOk : "qxhv=[@classname='tutorial.view.Confirm']/[@label='Ok']" +}; + +simulation.Simulation.prototype.runTest = function() +{ + this.__replaceCodeConfirmed = false; + var titles = this.getTutorialTitles(); + + for (var i=0,l=titles.length; i<l; i++) { + this.testTutorial(titles[i][0], titles[i][1]); + } +}; + +simulation.Simulation.prototype.testTutorial = function(shortTitle, longTitle) +{ + this.log("Testing tutorial '" + shortTitle + " : " + longTitle + "'", "info"); + try { + this.selectTutorial(longTitle); + } catch(ex) { + this.log(ex.message, "error"); + return; + } + + if (!this.isElementVisible("//p[text() = '" + shortTitle + "']")) { + this.error("Tutorial title not found in page!", "error"); + } + + this.testTutorialSteps(); +}; + +simulation.Simulation.prototype.testTutorialSteps = function() +{ + var step = 1; + this.testTutorialStep(step); + + while (this.forwardButtonEnabled()) { + try { + this.qxClick(locators.buttonForward); + step++; + this.testTutorialStep(step); + } catch(ex) { + this.log("Error while testing step " + step + ": " + ex.message, "error"); + } + } +}; + +simulation.Simulation.prototype.testTutorialStep = function(step) +{ + this.log(new Date().getTime() + " Testing step " + step, "debug"); + var stepLoc = "//p[starts-with(text(), 'Step " + step + "/')]"; + if (!this.isElementPresent(stepLoc)) { + this.log("Step " + step + " title not found!", "error"); + } + + editorContentLength = this.getEditorContentLength(); + this.qxClick(locators.buttonHelp); + + if (!this.__replaceCodeConfirmed) { + if (!this.confirmCodeReplacement()) { + return; + } + this.__replaceCodeConfirmed = true; + this.log("Confirmed code replacement", "info"); + } + + if (editorContentLength == this.getEditorContentLength()) { + this.log("Editor content did not change!", "error"); + return; + } + + this.logJsError(); + this.logAceError(); +}; + +simulation.Simulation.prototype.logAceError = function() { + if (this.isElementPresent(locators.aceIconWarning)) { + this.log("ACE shows warning(s)!", "error"); + } + if (this.isElementPresent(locators.aceIconError)) { + this.log("ACE shows error(s)!", "error"); + } +}; + +simulation.Simulation.prototype.logJsError = function() { + var locator = locators.jsErrorMessage.replace(/'/g, "\\'"); + var getJSerror = "selenium.browserbot.findElement('" + locator + "').innerHTML"; + var jsError = String(this.__sel.getEval(getJSerror)); + if (jsError.length > 0) + { + this.log("JavaScript error in tutorial code: " + String(jsError), "error"); + } +}; + +simulation.Simulation.prototype.getEditorContentLength = function() +{ + var getLength = "selenium.browserbot.findElement('//div[contains(@class, \"ace_content\")]').innerHTML.length"; + var result = this.__sel.getEval(getLength); + return parseInt(result, 10); +}; + +simulation.Simulation.prototype.confirmCodeReplacement = function() +{ + try { + this.waitForElementPresent(locators.windowConfirm, 4000); + } catch(ex) { + this.log("Code replacement dialog did not open!", "error"); + return false; + } + this.qxClick(locators.windowConfirmCheckbox); + this.qxClick(locators.windowConfirmButtonOk); + + try { + this.waitForElementNotPresent(locators.windowConfirm, 2000); + } + catch(ex) { + this.log("Code replacement dialog was not closed!", "error"); + return false; + } + return true; +}; + +simulation.Simulation.prototype.forwardButtonEnabled = function() +{ + var isEnabled = this.__sel.getRunInContext(locators.buttonForward, "return this.isEnabled();"); + return isEnabled == "true"; +}; + +simulation.Simulation.prototype.selectTutorial = function(title) { + if (!this.isElementPresent(locators.windowSelectTutorial) || + !this.isElementVisible(locators.windowSelectTutorial)) + { + this.qxClick(locators.buttonSelectTutorial); + this.waitForElementPresent(locators.windowSelectTutorial, 4000); + } + var tutorialButton = locators.windowSelectTutorial + "/[@label='" + title + "']"; + this.qxClick(tutorialButton); + this.waitForElementNotPresent(locators.windowSelectTutorial, 2000); +}; + +simulation.Simulation.prototype.getTutorialTitles = function() +{ + this.qxClick(locators.buttonSelectTutorial); + this.waitForElementPresent(locators.windowSelectTutorial, 4000); + + var getterFunc = 'var labels = []; var children = this.getChildren();' + + 'for (var i=0; i<children.length; i++) {' + + ' if (children[i].getLabel) { ' + + ' labels.push(children[i].getLabel()); ' + + ' } ' + + '}' + + 'return labels'; + var resultJson = this.__sel.getRunInContext(locators.windowSelectTutorial, getterFunc); + eval("var titles = " + resultJson); + + var titlesList = []; + + for (var i=0,l=titles.length; i<l; i++) { + var label = titles[i]; + var split = label.split("<br>"); + try { + split[1] = />(.*?)</.exec(split[1])[1]; + } catch(ex) { + this.log("Unexpected button label format: " + split[1]); + } + titlesList.push(split); + } + + this.qxClick(locators.buttonCloseWindow); + + return titlesList; +}; + +// - Main -------------------------------------------------------------------- + +(function() { + mySim.testFailed = false; + + var sessionStarted = mySim.startSession(); + + if (!sessionStarted) { + return; + } + + var isAppReady = mySim.waitForCondition(simulation.Simulation.ISQXAPPREADY, 240000, + "Waiting for qooxdoo application"); + + + if (!isAppReady) { + mySim.testFailed = true; + mySim.stop(); + return; + } + + try { + mySim.setupApplicationLogging(); + mySim.addGlobalErrorHandler(); + mySim.runTest(); + } + catch(ex) { + var msg = "Unexpected error while running tests: " + ex; + if (mySim.getConfigSetting("debug")) { + print(msg + "\n"); + } + mySim.log(msg, "error"); + } + mySim.logGlobalErrors(); + + if (!mySim.testFailed) { + if (mySim.getConfigSetting("debug")) { + print("Test run finished successfully."); + } + + var totalErrors = mySim.getTotalErrorsLogged() + mySim.getTotalWarningsLogged(); + mySim.log("Tests with warnings or errors: " + totalErrors, "info"); + } + + mySim.stop(); + mySim.logTestDuration(); + +})(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2012-11-15 09:12:15
|
Revision: 21798 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21798&view=rev Author: d_wagner Date: 2012-11-15 09:12:04 +0000 (Thu, 15 Nov 2012) Log Message: ----------- updated stack trace toggle check Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/testrunner/test_testrunner.js trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/testrunner/test_testrunner.js Modified: trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/testrunner/test_testrunner.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/testrunner/test_testrunner.js 2012-11-15 08:23:00 UTC (rev 21797) +++ trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/testrunner/test_testrunner.js 2012-11-15 09:12:04 UTC (rev 21798) @@ -22,7 +22,8 @@ var locators = { toolbarButtonRun : "qxhv=*/[@icon=media-playback-start]", - toolbarButtonStackTrace : "qxhv=*/[@icon=document-properties]", + toolbarButtonResultOptions : "qxhv=*/[@icon=document-properties]", + stackTraceToggle : "//div[text() = 'Show Stack Trace']", toolbarButtonReload : "qxhv=*/[@icon=view-refresh]" }; @@ -43,11 +44,11 @@ var failed = selWin + "." + qxAppInst + ".runner.view.getFailedTestCount()"; var skipped = selWin + "." + qxAppInst + ".runner.view.getSkippedTestCount()"; var successful = selWin + "." + qxAppInst + ".runner.view.getSuccessfulTestCount()"; - + var failedCount = parseInt(String(this.getEval(failed)), 10); var skippedCount = parseInt(String(this.getEval(skipped)), 10); var successfulCount = parseInt(String(this.getEval(successful)), 10); - + return { failed : failedCount, skipped : skippedCount, @@ -75,16 +76,16 @@ return; } this.log("Suite loaded, running tests", "debug"); - + var tests = [ this.testRunTests, this.testToggleStackTrace ]; - + if (this.getEnvironment("browser.name") != "safari") { tests.push(this.testReload); } - + for (var i=0, l=tests.length; i<l; i++) { try { tests[i].call(this); @@ -111,21 +112,21 @@ if (!this.getTestCount() === 0) { throw new Error("Suite is finished but not all tests were executed!"); } - + var resultCounts = this.getResultCounts(); var totalResults = resultCounts.success + resultCounts.skipped + resultCounts.failed; if (!totalResults == testCountBefore) { throw new Error("Got " + totalResults + " results for " + testCountBefore + " tests!"); } - + if (resultCounts.successful > 0 && !this.__sel.isElementPresent("css=.success")) { throw new Error("Got successful results but no element with class .success!"); } - + if (resultCounts.skipped > 0 && !this.__sel.isElementPresent("css=.skip")) { throw new Error("Got skipped results but no element with class .skip!"); } - + if (resultCounts.failed > 0 && !this.__sel.isElementPresent("css=.error")) { throw new Error("Got failed results but no element with class .error!"); } @@ -137,17 +138,25 @@ if (stackTraceActive && !this.__sel.isVisible("css=.trace")) { throw new Error("Stack trace display is active but found no element with class .trace!"); } - + if (!stackTraceActive && this.__sel.isVisible("css=.trace")) { throw new Error("Stack trace display is inactive but found an element with class .trace!"); } - - this.qxClick(locators.toolbarButtonStackTrace); + + this.qxClick(locators.toolbarButtonResultOptions); + try { + this.waitForElementPresent(locators.stackTraceToggle, 2000); + } + catch(ex) { + throw new Error("Result options menu not present!"); + } + this.qxClick(locators.stackTraceToggle); + var stackTraceActiveAfter = this.getShowStackTrace(); if (stackTraceActive == stackTraceActiveAfter) { throw new Error("Clicking the stack trace toggle did not change the property!"); } - + if ((stackTraceActiveAfter && !this.__sel.isVisible("css=.trace")) || (!stackTraceActiveAfter && this.__sel.isVisible("css=.trace")) ) { @@ -165,8 +174,8 @@ throw new Error("Test suite did not finish reloading within 10s!"); } - if (this.__sel.isElementPresent("css=.success") || - this.__sel.isElementPresent("css=.skip") || + if (this.__sel.isElementPresent("css=.success") || + this.__sel.isElementPresent("css=.skip") || this.__sel.isElementPresent("css=.error")) { throw new Error("Results view was not cleared after reload!"); @@ -212,7 +221,7 @@ if (mySim.getConfigSetting("debug")) { print("Test run finished successfully."); } - + var totalErrors = mySim.getTotalErrorsLogged() + mySim.getTotalWarningsLogged(); mySim.log("Tests with warnings or errors: " + totalErrors, "info"); } Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/testrunner/test_testrunner.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/testrunner/test_testrunner.js 2012-11-15 08:23:00 UTC (rev 21797) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/testrunner/test_testrunner.js 2012-11-15 09:12:04 UTC (rev 21798) @@ -22,7 +22,8 @@ var locators = { toolbarButtonRun : "qxhv=*/[@icon=media-playback-start]", - toolbarButtonStackTrace : "qxhv=*/[@icon=document-properties]", + toolbarButtonResultOptions : "qxhv=*/[@icon=document-properties]", + stackTraceToggle : "//div[text() = 'Show Stack Trace']", toolbarButtonReload : "qxhv=*/[@icon=view-refresh]" }; @@ -43,11 +44,11 @@ var failed = selWin + "." + qxAppInst + ".runner.view.getFailedTestCount()"; var skipped = selWin + "." + qxAppInst + ".runner.view.getSkippedTestCount()"; var successful = selWin + "." + qxAppInst + ".runner.view.getSuccessfulTestCount()"; - + var failedCount = parseInt(String(this.getEval(failed)), 10); var skippedCount = parseInt(String(this.getEval(skipped)), 10); var successfulCount = parseInt(String(this.getEval(successful)), 10); - + return { failed : failedCount, skipped : skippedCount, @@ -75,16 +76,16 @@ return; } this.log("Suite loaded, running tests", "debug"); - + var tests = [ this.testRunTests, this.testToggleStackTrace ]; - + if (this.getEnvironment("browser.name") != "safari") { tests.push(this.testReload); } - + for (var i=0, l=tests.length; i<l; i++) { try { tests[i].call(this); @@ -111,21 +112,21 @@ if (!this.getTestCount() === 0) { throw new Error("Suite is finished but not all tests were executed!"); } - + var resultCounts = this.getResultCounts(); var totalResults = resultCounts.success + resultCounts.skipped + resultCounts.failed; if (!totalResults == testCountBefore) { throw new Error("Got " + totalResults + " results for " + testCountBefore + " tests!"); } - + if (resultCounts.successful > 0 && !this.__sel.isElementPresent("css=.success")) { throw new Error("Got successful results but no element with class .success!"); } - + if (resultCounts.skipped > 0 && !this.__sel.isElementPresent("css=.skip")) { throw new Error("Got skipped results but no element with class .skip!"); } - + if (resultCounts.failed > 0 && !this.__sel.isElementPresent("css=.error")) { throw new Error("Got failed results but no element with class .error!"); } @@ -137,17 +138,25 @@ if (stackTraceActive && !this.__sel.isVisible("css=.trace")) { throw new Error("Stack trace display is active but found no element with class .trace!"); } - + if (!stackTraceActive && this.__sel.isVisible("css=.trace")) { throw new Error("Stack trace display is inactive but found an element with class .trace!"); } - - this.qxClick(locators.toolbarButtonStackTrace); + + this.qxClick(locators.toolbarButtonResultOptions); + try { + this.waitForElementPresent(locators.stackTraceToggle, 2000); + } + catch(ex) { + throw new Error("Result options menu not present!"); + } + this.qxClick(locators.stackTraceToggle); + var stackTraceActiveAfter = this.getShowStackTrace(); if (stackTraceActive == stackTraceActiveAfter) { throw new Error("Clicking the stack trace toggle did not change the property!"); } - + if ((stackTraceActiveAfter && !this.__sel.isVisible("css=.trace")) || (!stackTraceActiveAfter && this.__sel.isVisible("css=.trace")) ) { @@ -165,8 +174,8 @@ throw new Error("Test suite did not finish reloading within 10s!"); } - if (this.__sel.isElementPresent("css=.success") || - this.__sel.isElementPresent("css=.skip") || + if (this.__sel.isElementPresent("css=.success") || + this.__sel.isElementPresent("css=.skip") || this.__sel.isElementPresent("css=.error")) { throw new Error("Results view was not cleared after reload!"); @@ -212,7 +221,7 @@ if (mySim.getConfigSetting("debug")) { print("Test run finished successfully."); } - + var totalErrors = mySim.getTotalErrorsLogged() + mySim.getTotalWarningsLogged(); mySim.log("Tests with warnings or errors: " + totalErrors, "info"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2012-11-15 08:23:15
|
Revision: 21797 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21797&view=rev Author: d_wagner Date: 2012-11-15 08:23:00 +0000 (Thu, 15 Nov 2012) Log Message: ----------- Selenium tests for the qooxdoo 2.1 demo applications Added Paths: ----------- trunk/qooxdoo-contrib/Simulator/2.1/ trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/Simulation.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/apiviewer/test_apiviewer_website.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/demobrowser/test_demobrowser.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/feedreader/test_feedreader_website.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/inspector/test_inspector.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/skeleton/test_skeleton.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/testrunner/test_testrunner.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/todo/test_todo.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/tutorial/test_mobiletweets.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js Removed Paths: ------------- trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/Simulation.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/demobrowser/test_demobrowser.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/feedreader/test_feedreader_website.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/inspector/test_inspector.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/skeleton/test_skeleton.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/testrunner/test_testrunner.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/todo/test_todo.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/tutorial/test_mobiletweets.js trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js Deleted: trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/Simulation.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js 2012-06-27 15:58:05 UTC (rev 21734) +++ trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/Simulation.js 2012-11-15 08:23:00 UTC (rev 21797) @@ -1,1231 +0,0 @@ -/* ************************************************************************ - - qooxdoo - the new era of web development - - http://qooxdoo.org - - Copyright: - 2006-2009 1&1 Internet AG, Germany, http://www.1and1.org - - License: - LGPL: http://www.gnu.org/licenses/lgpl.html - EPL: http://www.eclipse.org/org/documents/epl-v10.php - See the LICENSE file in the project's top-level directory for details. - - Authors: - * Daniel Wagner (d_wagner) - -************************************************************************ */ - -// Create the simulation namespace if it doesn't exist -var simulation = simulation || {}; - -/** - * This class represents automated interaction tests ("Simulations") of - * qooxdoo-based applications. It contains generic functionality such as - * logging and error handling that is reused across multiple Simulations. - * - * Actual Simulations should extend this class with their own methods containing - * code specific to the application to be tested, such as simulated user - * interaction using qooxdoo locators[1]. - * - * This code is intended to be run through Mozilla Rhino as described in the - * Simulator manual[2]. - * - * [1] http://qooxdoo.org/contrib/project/simulator/selenium-user-extension - * [2] http://qooxdoo.org/contrib/project/simulator#javascript - * - * @constructor - * @param baseConf {Map} basic configuration settings for this Simulation - * @param args {String} optional Rhino command line arguments - */ -simulation.Simulation = function(baseConf, args) -{ - // Basic sanity check: No sense in continuing without QxSelenium. - try { - importClass(Packages.com.thoughtworks.selenium.QxSelenium); - } - catch(ex) { - throw new Error("Couldn't import QxSelenium class! Make sure the qooxdoo " - + "Selenium user extensions are installed in your Selenium client.\n" + ex); - } - - // Required configuration settings. Can't run a test without these. - var required = ['selServer', 'selPort', 'testBrowser', 'autHost', 'autPath']; - - // Some default settings. - var defaults = { - debug : false, - autName : "Unnamed Application", - selServer : 'localhost', - selPort : 4444, - stepSpeed : "250", - globalTimeout : 120000, - disposerDebug : false, - applicationLog : true - }; - - /* - * Frequently used Javascript code snippets meant to be run in the tested - * application's context through the getEval() method. - */ - simulation.Simulation.SELENIUMWINDOW = 'selenium.qxStoredVars["autWindow"]'; - simulation.Simulation.QXAPPINSTANCE = 'qx.core.Init.getApplication()'; - simulation.Simulation.ISQXAPPREADY = 'var qxReady = false; try { if (' - + simulation.Simulation.SELENIUMWINDOW + '.' - + simulation.Simulation.QXAPPINSTANCE - + ') { qxReady = true; } } catch(e) {} qxReady;'; - - - var __totalErrorsLogged = 0; - var __totalWarningsLogged = 0; - - this.testFailed = false; - - /** - * Sets the total number of errors logged. - * - * @private - * @param errors {Integer} The new error count - * @return {void} - */ - setTotalErrorsLogged = function(errors) - { - __totalErrorsLogged = errors; - }; - - /** - * Sets the total number of warnings logged. - * - * @private - * @param warnings {Integer} The new warning count - * @return {void} - */ - setTotalWarningsLogged = function(warnings) - { - __totalWarningsLogged = warnings; - }; - - /** - * Returns the total number of errors logged by the {@link #log} method. - * - * @return {Integer} Number of errors logged so far in the current Simulation - */ - this.getTotalErrorsLogged = function() - { - return __totalErrorsLogged; - }; - - - /** - * Returns the total number of warnings logged by the {@link #log} method. - * - * @return {Integer} Number of warnings logged so far in the current Simulation - */ - this.getTotalWarningsLogged = function() - { - return __totalWarningsLogged; - }; - - /** - * Initalizes the configuration, sets defaults if necessary and validates the - * configuration. - * - * @private - * @param baseConf {Map} a map of configuration settings - * @param args {String} optional space-delimited string of 'key=value' pairs - * @return {Map} the configuration for this Simulation instance - * @throws an exception if a required setting is missing - */ - function initConfig(baseConf, args) - { - /* - * If the script was called with any external arguments (e.g. on the Rhino - * command line), add those settings to the config map, overriding any - * properties already defined in baseConf. - */ - - var conf = baseConf || {}; - if (args) { - var argConf = getConfigFromArgs(args); - for (var prop in argConf) { - conf[prop] = argConf[prop]; - } - } - - // Set defaults if they're not already set. - for (var key in defaults) { - if (!(key in conf)) { - conf[key] = defaults[key]; - } - } - - // Check if all required keys are set. - for (var i=0,l=required.length; i<l; i++) { - if (!(required[i] in conf)) { - throw new Error("Required property " + required[i] + " not in configuration!"); - } - } - - return conf; - } - - var __config = initConfig(baseConf || false, args || false); - - /** - * Split an array of 'key=value' strings (e.g. Rhino's arguments property) and - * store them in a map. - * - * @private - * @param args {String} a space-delimited string of 'key=value' pairs - * @return {Map} a map of key-value pairs - */ - function getConfigFromArgs(args) - { - var conf = {}; - for (var i in args) { - if (args[i].indexOf("=") >0) { - var tempArr = args[i].split("="); - if (tempArr[1] == "true") { - conf[tempArr[0]] = true; - } - else if (tempArr[1] == "false") { - conf[tempArr[0]] = false; - } - else { - conf[tempArr[0]] = tempArr[1]; - } - } - } - return conf; - } - - /** - * Public getter for configuration settings. - * - * @param prop {String} the name of a configuration key - * @param defaultValue {String} Optional value to be returned if the key isn't - * defined in the configuration - * @return {String} the value of the requested configuration key - * @throw an exception if no key was specified or the key doesn't exist in the - * configuration map and no default value was specified - */ - this.getConfigSetting = function(prop, defaultValue) - { - if (!prop) { - throw new Error("No configuration key specified!"); - } - - if (!(prop in __config)) { - if (defaultValue || typeof(defaultValue) == "boolean") { - return defaultValue; - } - else { - throw new Error("Key " + prop + " not in configuration!"); - } - } - else { - return __config[prop]; - } - }; - - function addZero(val) - { - if (val < 10) { - val = "0" + val; - } - return val; - } - - this.startDate = new Date(); - - this.startDateString = this.startDate.getFullYear() + "-"; - - var month = this.startDate.getMonth() + 1; - this.startDateString += addZero(month) + "-"; - - var day = this.startDate.getDate(); - this.startDateString += addZero(day) + " "; - - var hours = this.startDate.getHours(); - this.startDateString += addZero(hours) + ":"; - - var minutes = this.startDate.getMinutes(); - this.startDateString += addZero(minutes) + ":"; - - var seconds = this.startDate.getSeconds(); - this.startDateString += addZero(seconds); - - // Determine the name for the log file. - if (!("logFile" in __config)) { - var fname = __config.autName + "_" + this.startDate.getTime() + ".log"; - __config.logFile = fname; - } - -}; - -/** - * Increments the number of total errors logged by one - * - * @return {void} - */ -simulation.Simulation.prototype.incrementTotalErrorsLogged = function() -{ - var oldCount = this.getTotalErrorsLogged(); - var newCount = oldCount + 1; - setTotalErrorsLogged(newCount); -}; - -/** - * Increments the number of total warnings logged by one - * - * @return {void} - */ -simulation.Simulation.prototype.incrementTotalWarningsLogged = function() -{ - var oldCount = this.getTotalWarningsLogged(); - var newCount = oldCount + 1; - setTotalWarningsLogged(newCount); -}; - -/** - * Start the Selenium session and set some basic options. - * - * @return {Boolean} true if the Selenium session started without errors - */ -simulation.Simulation.prototype.startSession = function() -{ - if (this.getConfigSetting("debug")) { - print("Starting " + this.getConfigSetting("autName") + " session with browser " + this.getConfigSetting("testBrowser")); - } - - // Create QxSelenium instance. - try { - this.__sel = new QxSelenium(this.getConfigSetting("selServer"),this.getConfigSetting("selPort"), - this.getConfigSetting("testBrowser"),this.getConfigSetting("autHost")); - } - catch(ex) { - throw new Error("Unable to create QxSelenium instance: " + ex); - } - - try { - this.__sel.start(); - if (this.getConfigSetting("windowMaximize", false)) { - this.__sel.windowMaximize(); - } - this.__sel.setTimeout(this.getConfigSetting("globalTimeout")); - this.__sel.open(this.getConfigSetting("autHost") + "" + this.getConfigSetting("autPath")); - this.__sel.setSpeed(this.getConfigSetting("stepSpeed")); - this.setupEnvironment(); - this.logEnvironment(); - this.logUserAgent(); - } - catch (ex) { - this.logEnvironment("file"); - this.log("User agent: " + this.getConfigSetting("browserId"), "none", "file"); - var msg = "ERROR: Unable to start test session: " + ex; - print(msg); - this.log(msg, "error", "file"); - return false; - } - return true; -}; - -/** - * Add some testing utilities to the qooxdoo application. Must be called - * after the application is (re)loaded. - */ -simulation.Simulation.prototype.setupEnvironment = function() -{ - try { - /* - * Store the AUT window object to avoid calling - * selenium.browserbot.getCurrentWindow() repeatedly. - */ - this.__sel.getEval('selenium.qxStoredVars = {}'); - // IE6/7 sometimes freeze if the next command is executed immediately - Packages.java.lang.Thread.sleep(1000); - this.storeEval('selenium.browserbot.getCurrentWindow()', 'autWindow'); - - this.prepareNameSpace(); - this.addSanitizer(); - } - catch(ex) { - this.log("Error while setting up test environment: " + ex, "error"); - } -}; - -/** - * Open a URI containing a qooxdoo application and prepare it for testing. If no - * URI is given, the current AUT is reloaded. - * - * @param {String} uri Optional URI of the qooxdoo application to be loaded. - */ -simulation.Simulation.prototype.qxOpen = function(uri) -{ - var openUri = uri || this.getConfigSetting("autHost") + "" + this.getConfigSetting("autPath"); - this.__sel.open(openUri); - this.setupEnvironment(); -}; - -/** - * Attaches a "Simulation" namespace object to the specified window's qx object. - * This will be used to store custom methods added by addOwnFunction. If no - * window is specified, the AUT's window is used. - * - * @param win {String} The name of the target window. Must evaluate to a - * JavaScript Window object. - * @return {void} - */ -simulation.Simulation.prototype.prepareNameSpace = function(win) -{ - var targetWin = win || 'selenium.qxStoredVars["autWindow"]'; - var ns = String(this.getEval(targetWin + '.qx.Simulation', 'Checking for qx.Simulation namespace')); - if (ns == "null" || ns == "undefined") { - this.getEval(targetWin + '.qx.Simulation = {};', 'Creating qx.Simulation namespace'); - } -}; - -/** - * Wrapper around Selenium's <code>getEval</code> that catches and logs any exceptions so - * they won't cause the entire test to fail. - * - * @param code {String} JavaScript code to be evaluated - * @param description {String} optional description that will be logged if there - * was an exception during evaluation - * @throw an exception if no code was specified - * @return the results of the evaluation - */ -simulation.Simulation.prototype.getEval = function(code, description) -{ - if (!code) { - throw new Error("No code specified for getEval()"); - } - - if (this.getConfigSetting("debug") && description) { - print(description); - } - - var desc = description ? description : "Evaluating script"; - - var ret = false; - try { - ret = this.__sel.getEval(code); - } - catch(ex) { - this.log("ERROR: " + desc + ": " + ex, "error"); - print("ERROR: " + desc + ": " + ex + " \nScript code:\n " + code); - } - - return ret; -}; - -/** - * Wrapper around Selenium's <code>runScript</code> that catches and logs any exceptions so - * they won't cause the entire test to fail. - * - * @param code {String} JavaScript code to be evaluated - * @param description {String} optional description that will be logged if there - * was an exception during evaluation - * @throw an exception if no code was specified - * @return {void} - */ -simulation.Simulation.prototype.runScript = function(code, description) -{ - if (!code) { - throw new Error("No code specified for runScript()"); - } - - var desc = description ? description : "Running script"; - - if (this.getConfigSetting("debug")) { - print(desc); - } - - try { - this.__sel.runScript(code); - } - catch(ex) { - this.log("ERROR: " + desc + ": " + ex, "error"); - print("ERROR: " + desc + ": " + ex + " \nScript code:\n " + code); - } - - return; -}; - -/** - * Wrapper around QxSelenium's qxClick method that catches and logs any - * exceptions so they won't cause the Simulation to fail. - * - * @param locator {String} Selenium locator identifying the element that should - * receive the click event - * @param description {String} optional description that will be logged if there - * was an exception during evaluation - * @throw an exception if no locator was specified - * @return {void} - */ -simulation.Simulation.prototype.qxClick = function(locator, options, description) -{ - if (!locator) { - throw new Error("No locator specified for qxClick()"); - } - - var desc = description ? description : "Executing qxClick"; - - if (this.getConfigSetting("debug")) { - print(desc); - } - - try { - this.__sel.qxClick(locator, options); - } - catch(ex) { - this.log("ERROR: " + desc + ": " + ex, "error"); - print("ERROR: " + desc + ": " + ex + " \nLocator:\n " + locator); - } - - return; -}; - -/** - * Wrapper around QxSelenium's qxType() that catches and logs any exceptions so - * they won't cause the entire test to fail. - * - * @param locator {String} Selenium locator identifying the element that should - * receive the keydown/keyup/keypress events - * @param text {String} the text to be typed - * @param keys {Boolean} use Selenium's "typeKeys" instead of "type" if true - * @throw an exception if no locator or text were specified - * @return {void} - */ -simulation.Simulation.prototype.qxType = function(locator, text, keys) -{ - if (!locator) { - throw new Error("No locator specified for type()"); - } - - if (typeof(text) != "string") { - throw new Error("No text specified for type()"); - } - - if (this.getConfigSetting("debug")) { - print("Typing: " + text); - } - - var qxSelCmd = keys ? "qxTypeKeys" : "qxType"; - - try { - this.__sel[qxSelCmd](locator, text); - } - catch(ex) { - this.log("Unable to enter text: " + ex + " \nText:\n " + text, "error"); - } -}; - -/** - * Wrapper around QxSelenium's qxTypeKeys() that catches and logs any exceptions - * so they won't cause the entire test to fail. - * - * @param locator {String} Selenium locator identifying the element that should - * receive the keydown/keyup/keypress events - * @param text {String} the text to be typed - * @throw an exception if no locator or text were specified - * @return {void} - */ -simulation.Simulation.prototype.qxTypeKeys = function(locator, text) -{ - this.qxType(locator, text, true); -}; - -/** - * Wrapper around QxSelenium's qxTableClick() that catches and logs any - * exceptions so they won't cause the entire test to fail. - * - * @param locator {String} Selenium locator identifying a qooxdoo table object - * @param options {String} Options for the command, e.g - * "row=4,column=3,button=right" - * @throw an exception if no locator was specified - * @return {void} - */ -simulation.Simulation.prototype.qxTableClick = function(locator, options) -{ - if (!locator) { - throw new Error("No locator specified for qxTableClick()"); - } - - try { - this.__sel.qxTableClick(locator, options); - } - catch(ex) { - this.log("ERROR: qxTableClick " + ex, "error"); - print("ERROR: qxTableClick " + ex + " \nLocator:\n " + locator); - } -}; - -/** - * Wrapper around QxSelenium's qxDragAndDropToObject() that catches and logs any - * exceptions so they won't cause the entire test to fail. - * - * @param dragLocator {String} Selenium locator identifying the drag target - * @param dropLocator {String} Selenium locator identifying the drop target - * @throw an exception if no locators were specified - * @return {void} - */ -simulation.Simulation.prototype.qxDragAndDropToObject = function(dragLocator, dropLocator) -{ - if (!dragLocator) { - throw new Error("No drag target locator specified for qxDragAndDropToObject()"); - } - if (!dropLocator) { - throw new Error("No drop target locator specified for qxDragAndDropToObject()"); - } - - try { - this.__sel.qxDragAndDropToObject(dragLocator, dropLocator); - } - catch(ex) { - this.log("ERROR: qxDragAndDropToObject " + ex, "error"); - print("ERROR: qxDragAndDropToObject "); - } -}; - -/** - * Opens a log file and returns the file object. - * - * @return {Object} the log file object (java.io.BufferedWriter instance) - */ -simulation.Simulation.prototype.getLogFile = function() -{ - var fstream = new java.io.FileWriter(this.getConfigSetting("logFile"), true); - var out = new java.io.BufferedWriter(fstream); - return out; -}; - -/** - * Formats a message according to the error level, then writes it to the local - * log file and optionally to the Selenium server's browser-side log. - * - * @param text {String} the message to be logged - * @param level {String?"debug"} The message's error level. One of "debug", - * "info", "warn", "error", "none". "none" means no formatting is applied. - * @param browserLog {String?"browser"} "browser" also logs to the server's - * browser-side log, anything else logs only to the local log file - * @return {void} - */ -simulation.Simulation.prototype.log = function(text, level, browserLog) -{ - var msg = text ? text : ""; - var lvl = level ? level : "debug"; - var browser = browserLog || ""; - - if (lvl == "error") { - this.incrementTotalErrorsLogged(); - } - - if (lvl == "warn") { - this.incrementTotalWarningsLogged(); - } - - msg = this.sanitize(msg); - - if (this.getConfigSetting("debug")) { - print("Logging message: " + msg); - } - - // Clean up/format non-HTML messages - if (msg.substr(0,1) !== "<") { - msg = "<p>" + msg + "</p>"; - if (lvl != "none") { - msg = '<div class="qxappender"><div class="level-' + lvl + '">' + msg + "</div></div>"; - } - } - - var prefix = 'qxSimulator_' + this.startDate.getTime(); - var logFile = this.getLogFile(); - logFile.write(prefix + ': ' + msg); - logFile.newLine(); - logFile.close(); - - if (browser == "browser") { - var message = 'LOG.error("' + prefix + ': " + \'' + msg + '\');'; - this.getEval(message, "Logging message to browser"); - } - -}; - -/** - * Removes special and formatting characters from strings so they can be logged. - * - * @param text {String} The string to be sanitized - * @return {String} The sanitized string - */ -simulation.Simulation.prototype.sanitize = function(text) -{ - // The message might be a Java object, so cast it as a String just to be sure. - text = String(text); - text = text.replace(/\n/g,'<br/>'); - text = text.replace(/\r/g,'<br/>'); - text = text.replace(/'/g, '"'); - text = text.replace(/ä/g, 'ä'); - text = text.replace(/ö/g, 'ö'); - text = text.replace(/ü/g, 'ü'); - text = text.replace(/Ä/g, 'Ä'); - text = text.replace(/Ö/g, 'Ö'); - text = text.replace(/Ü/g, 'Ü'); - text = text.replace(/ß/g, 'ß'); - text = text.replace(/[^\w\d\-_:;\.,\"\!\?\(\)\[\]#$%&= \/\<\> ]?/gi, ''); - return text; -}; - -/** - * Logs information about the test environment. - * - * @param logTo {String} How to log the information. "browser" writes to - * Selenium's browser side log and the test log file, anything else writes only - * to the test log file. - * @return {void} - */ -simulation.Simulation.prototype.logEnvironment = function(logTo) -{ - var log = logTo || ""; - this.log("<h1>" + this.getConfigSetting("autName") + " results from " + this.startDateString + "</h1>", "none", logTo); - this.log("<p>Application under test: <a href=\"" + this.getConfigSetting("autHost") + unescape(this.getConfigSetting("autPath")) + "\">" + this.getConfigSetting("autHost") + unescape(this.getConfigSetting("autPath")) + "</a></p>", "none", logTo); - this.log("Platform: " + environment["os.name"], "none", log); -}; - -/** - * Logs the test browser's user agent string. - * - * @return {void} - */ -simulation.Simulation.prototype.logUserAgent = function(){ - var agent = this.getEval('navigator.userAgent', "Getting user agent from browser"); - this.log("User agent: " + agent, "none"); -}; - -/** - * Wrapper around Selenium's waitForCondition() function. Logs any exceptions - * (e.g. because the timeout was reached) along with an optional description. - * - * @param condition {String} a JavaScript expression that will be evaluated - * @param timeout {Integer} timeout in milliseconds - * @param description {String} optional description that will be logged if there - * was an exception during evaluation - * @param loglevel {String} The level of the message to log if the command timed - * out. One of "debug", "info", "warn", "error". Default is "error". - * @throw an exception if no condition or timeout were specified - * @return {Boolean} true if the condition was met before the timeout - */ -simulation.Simulation.prototype.waitForCondition = function(condition, timeout, - description, loglevel) -{ - if (!condition) { - throw new Error("No condition to wait for specified."); - } - - if (!timeout) { - throw new Error("No timeout specified for waitForCondition()"); - } - - var desc = description ? description : "Waiting for condition"; - - if (this.getConfigSetting("debug")) { - print(desc); - } - - var level = loglevel || "error"; - - try { - this.__sel.waitForCondition(condition, timeout.toString()); - return true; - } - catch(ex) { - if (this.getConfigSetting("debug")) { - print(ex); - } - this.log(desc, level); - return false; - } -}; - - -simulation.Simulation.prototype.waitForElementPresent = function(locator, timeout) -{ - var condition = 'selenium.isElementPresent("' + locator + '")'; - this.__sel.waitForCondition(condition, timeout || 5000); -}; - - -simulation.Simulation.prototype.waitForElementVisible = function(locator, timeout) -{ - var condition = 'selenium.isVisible("' + locator + '")'; - this.__sel.waitForCondition(condition, timeout || 5000); -}; - - -simulation.Simulation.prototype.getInnerHtmlFromCollection = function(query) -{ - var getter="var titles = [];" + - "var coll = selenium.browserbot.getCurrentWindow().qx.bom.Collection.query('" + query + "');" + - "for (var i=0, l=coll.length; i<l; i++) {" + - "titles.push(coll[i].innerHTML)" + - "}" + - "selenium.browserbot.getCurrentWindow().qx.lang.Json.stringify(titles);"; - - try { - var stringResult = "var temp=" + String(this.__sel.getEval(getter)); - } - catch(ex) { - this.log("Couldn't get innerHTML for selector " + query + ": " + ex.message); - return []; - } - eval(stringResult); - return temp; -}; - -/** - * Logs the amount of time passed since the given start date. - * - * @param sDate {Date} the start date - * @param desc {String} optional description - * - * @return {void} - */ -simulation.Simulation.prototype.logTestDuration = function(sDate, desc) -{ - var startDate = sDate ? sDate : this.startDate; - var description = desc ? desc : "Test run"; - - var stopDate = new Date(); - var elapsed = stopDate.getTime() - startDate.getTime(); - elapsed = (elapsed / 1000); - var min = Math.floor(elapsed / 60); - var sec = Math.round(elapsed % 60); - if (sec < 10) { - sec = "0" + sec; - } - - if (this.getConfigSetting("debug")) { - print(description + " finished in: " + min + " minutes " + sec + " seconds."); - } - - this.log(description + " finished in: " + min + " minutes " + sec + " seconds.", "info"); -}; - -/** - * Evaluates a JavaScript snippet and stores the result in the global selenium - * object's qxStoredVars property. Stored variables can be retrieved through - * getEval: <code>getEval('selenium.qxStoredVars["varName"]')</code> - * - * @param code {String} JavaScript snippet to be evaluated - * @param varName {String} The name for the property the eval result will be - * stored in - * @return {void} - */ -simulation.Simulation.prototype.storeEval = function(code, varName) -{ - if (!code) { - throw new Error("No code specified for storeEval()"); - } - - this.__sel.getEval('selenium.qxStoredVars["' + varName + '"] = ' + code); -}; - -/** - * Adds a function to the "qx.Simulation" namespace of the application under - * test. This function can then be called using - * <code>Simulation.getEval("selenium.browserbot.getCurrentWindow().qx.Simulation.funcName();")</code> - * - * @param funcName {String} name of the function to be added - * @param func {Function} the function to be added - * @return {void} - */ -simulation.Simulation.prototype.addOwnFunction = function(funcName, func) -{ - if (!funcName) { - throw new Error("Please choose a name for the function to be added."); - } - - if (!func) { - throw new Error("No function specified."); - } - - if (typeof func != "string") { - func = func.toString(); - } - - func = func.replace(/\n/,''); - func = func.replace(/\r/,''); - //func = func.replace(/'/, '\''); - - this.getEval('selenium.browserbot.getCurrentWindow().qx.Simulation.' + funcName + ' = ' + func, 'Adding function ' + funcName); -}; - -/** - * Dismisses any alert or dialog boxes currently open in the application under - * test. - * - * @return {Map|false} a map containing the text content of any closed boxes in the - * 'alert' and 'confirmation' keys or false if no boxes were dismissed - */ -simulation.Simulation.prototype.killBoxes = function() -{ - var retVal = { - 'alert' : false, - 'confirmation' : false - }; - - try { - if (this.__sel.isAlertPresent()) { - var al = this.__sel.getAlert(); - retVal.alert = String(al); - this.log("Dismissed alert box: " + al, "info"); - } - } - catch(ex) { - this.log("ERROR while checking for alert box: " + ex, "error"); - } - - // Ditto for confirmation dialogs. - try { - if (this.__sel.isConfirmationPresent()) { - this.__sel.chooseCancelOnNextConfirmation(); - var con = this.__sel.getConfirmation(); - retVal.confirmation = String(con); - this.log("Dismissed confirmation dialog " + con, "info"); - } - } - catch(ex) { - this.log("ERROR while checking for dialog box: " + ex, "error"); - } - - if (retVal.alert || retVal.confirmation) { - return retVal; - } - - else { - return false; - } - -}; - -/** - * Adds a function <code>qx.Simulation.getObjectByClassname</code> to the AUT's - * window. This function takes two arguments: A parent object and a qooxdoo - * class name string. - * It will search all properties of the parent object until it finds one with - * a classname property matching the class name string; this object is then - * returned. - * - * The function should be executed through getEval like this: - * <code>this.getEval('selenium.browserbot.getCurrentWindow().qx.Simulation.getObjectByClassname(selenium.browserbot.getCurrentWindow().qx.core.Init.getApplication(), "qx.ui.tree.Tree")';</code> - * - * TODO: Return an array of *all* objects that are instances of the wanted class - * - * @return {void} - */ -simulation.Simulation.prototype.addObjectGetter = function() -{ - var getObjectByClassname = function(parent, searchterm) - { - var obj = null; - for (var prop in parent) { - var property = parent[prop]; - try { - if (typeof property == "object") { - if (property.classname == searchterm) { - obj = property; - } - } - } - catch(ex) {} - } - return obj; - }; - - this.addOwnFunction("getObjectByClassname", getObjectByClassname); - -}; - -/** - * Adds a function <code>qx.Simulation.getChildrenByClassname</code> to the AUT's - * window. This function takes two arguments: A parent object and a qooxdoo - * class name string. - * It will return an array containing any children of the parent object with a - * classname property matching the class name string. - * - * The function should be executed through getEval like this: - * <code>this.getEval('selenium.browserbot.getCurrentWindow().qx.Simulation.getChildrenByClassname(selenium.browserbot.getCurrentWindow().qx.core.Init.getApplication(), "qx.ui.tree.Tree")';</code> - * - * @return {void} - */ -simulation.Simulation.prototype.addChildrenGetter = function() -{ - var getChildrenByClassname = function(parent, searchterm) - { - var foundKids = []; - var kids = parent.getChildren(); - for (var i=0,l=kids.length;i<l; i++) { - if (kids[i].classname == searchterm) { - foundKids.push(kids[i]); - } - } - return foundKids; - }; - - this.addOwnFunction("getChildrenByClassname", getChildrenByClassname); - -}; - -/** - * Adds a function <code>qx.Simulation.sanitize</code> to the AUT's - * window, which will strip most special characters from a given string. - * It's more reliable to do this in this in the browser since some - * characters will be fubared on the way from the browser to the test - * script. - * - * The function should be executed through getEval like this: - * <code>this.getEval('selenium.browserbot.getCurrentWindow().qx.Simulation.sanitize(string)';</code> - * - * @return {void} - */ -simulation.Simulation.prototype.addSanitizer = function() -{ - var sanitize = function(text) - { - text = text.replace(/'/g, '"'); - text = text.replace(/[^\w\d\-_:;\.,\"\!\?\(\)\[\]#$%&= \/\<\> ]?/gi, ''); - return text; - }; - - this.addOwnFunction("sanitize", sanitize); - -}; - -/** - * Call Selenium's stop method, which *should* also close the browser. This - * won't work in older versions of Firefox (<=2.0.0). - * - * @return {void} - */ -simulation.Simulation.prototype.stop = function() -{ - this.__sel.stop(); - if (this.getConfigSetting("debug")) { - print("Simulation finished."); - } -}; - -/** - * Default simulation result logging: Logs any disposer debug messages, the - * total number of issues (= warnings + errors) that occurred during the - * simulation and the elapsed time. - * - * @return {void} - */ -simulation.Simulation.prototype.logResults = function() -{ - if (this.getConfigSetting("disposerDebug")) { - var getDisposerDebugLevel = "selenium.qxStoredVars['autWindow'].qx.core.Setting.get('qx.disposerDebugLevel')"; - var disposerDebugLevel = this.getEval(getDisposerDebugLevel, "Getting qx.disposerDebugLevel"); - - if (parseInt(disposerDebugLevel, 10) > 0 ) { - //this.logDisposerDebug(); - this.qxShutdown(); - } - } - - if (this.getConfigSetting("applicationLog")) { - this.logRingBufferEntries(); - } - - if (!this.testFailed) { - if (this.getConfigSetting("debug")) { - print("Test run finished successfully."); - } - - var totalIssues = this.getTotalErrorsLogged() + this.getTotalWarningsLogged(); - this.log(this.getConfigSetting("autName") + " ended with warnings or errors: " + totalIssues, "info"); - } - - this.logTestDuration(); -}; - -/** - * Makes the necessary preparations to allow AUT log access. - */ -simulation.Simulation.prototype.setupApplicationLogging = function() -{ - this.addRingBuffer(); - this.addRingBufferGetter(); -}; - -/** - * Creates a new qx.log.appender.RingBuffer in the AUT and registers it. - * - * @return {void} - */ -simulation.Simulation.prototype.addRingBuffer = function() -{ - var rb = "new selenium.qxStoredVars['autWindow'].qx.log.appender.RingBuffer()"; - this.storeEval(rb, "ringBuffer"); - this.getEval("selenium.qxStoredVars['autWindow'].qx.log.Logger.register(selenium.qxStoredVars['ringBuffer'])", "Registering log appender"); - //this.getEval("selenium.qxStoredVars['ringBuffer'].clearHistory()", "Clearing log history"); -}; - -/** - * Adds a function to the AUT that retrieves all messages from the logger - * created by addRingBuffer. - * - * @return {void} - */ -simulation.Simulation.prototype.addRingBufferGetter = function() -{ - var getRingBufferEntries = function() { - var entries = selenium.qxStoredVars["ringBuffer"].getAllLogEvents(); - var entryArray = []; - for (var i=0,l=entries.length; i<l; i++) { - try { - var entry = entries[i].level + ":" - + selenium.qxStoredVars['autWindow'].qx.log.appender.Util.toText(entries[i]); - entryArray.push(entry); - } catch(ex) { - var entry = entries[i].level + ":"; - for (var j=0,m=entries[i].items.length; j<m; j++) { - entry += entries[i].items[j].text + " "; - } - entryArray.push(entry); - } - } - return entryArray.join("|"); - }; - - this.addOwnFunction("getRingBufferEntries", getRingBufferEntries); -}; - -/** - * Retrieves all messages from the logger created by addRingBuffer and writes - * them to the simulation log. - * - * @return {void} - */ -simulation.Simulation.prototype.logRingBufferEntries = function() -{ - var debugLog = this.getEval("selenium.qxStoredVars['autWindow'].qx.Simulation.getRingBufferEntries()", "Retrieving log messages"); - debugLog = String(debugLog); - var debugLogArray = debugLog.split("|"); - - for (var i=0,l=debugLogArray.length; i<l; i++) { - var entry = debugLogArray[i].split(":"); - var level = entry.shift(); - this.log(entry.join(" : "), level); - } -}; - -/** - * "Manually" shuts down the qooxdoo application. Can be used for disposer debug - * logging. - * - * @return {void} - */ -simulation.Simulation.prototype.qxShutdown = function() -{ - this.getEval('selenium.qxStoredVars["autWindow"].qx.core.ObjectRegistry.shutdown()', "Shutting down qooxdoo application"); -}; - -/** - * Creates a global error handler that stores JavaScript exceptions that are - * thrown in the specified window. Global Error Handling must be enabled in the - * AUT. - * Also adds a simple getter function that returns the contents of the exception - * store as a string separated by pipe characters ("|"); - * - * @param win {String} The target window. Must evaluate to a JavaScript Window - * object. Default: The AUT's window. - * @return {void} - */ -simulation.Simulation.prototype.addGlobalErrorHandler = function(win) -{ - var qxWin = win || "selenium.qxStoredVars['autWindow']"; - this.prepareNameSpace(qxWin); - this.getEval(qxWin + ".qx.Simulation.errorStore = [];", "Adding errorStore"); - - var addHandler = function(autWin) - { - var targetWin = autWin || selenium.qxStoredVars['autWindow']; - targetWin.qx.event.GlobalError.setErrorHandler(function(ex) { - var exString = ""; - if (ex instanceof targetWin.qx.core.GlobalError) { - ex = ex.getSourceException(); - } - if (ex instanceof targetWin.qx.core.WindowError) { - exString = ex.toString() + " in " + ex.getUri() + " line " + ex.getLineNumber(); - } - else { - exString = ex.name + ": " + ex.message; - if (ex.fileName) { - exString += " in file " + ex.fileName; - } - if (ex.lineNumber) { - exString += " line " + ex.lineNumber; - } - if (ex.description) { - exString += " Description: " + ex.description; - } - if (ex.stack) { - exString += " Stack: " + ex.stack; - } - } - var sanitizedEx = selenium.qxStoredVars['autWindow'].qx.Simulation.sanitize(exString); - targetWin.qx.Simulation.errorStore.push(sanitizedEx); - }); - }; - - this.addOwnFunction("addGlobalErrorHandler", addHandler); - this.getEval("selenium.qxStoredVars['autWindow'].qx.Simulation.addGlobalErrorHandler(" + qxWin + ");", "Adding error handler"); - - var globalErr = function(win) - { - var targetWin = win || selenium.qxStoredVars['autWindow']; - var exceptions = targetWin.qx.Simulation.errorStore; - var exString = exceptions.join("|"); - return exString; - }; - this.addOwnFunction("getGlobalErrors", globalErr); - -}; - -/** - * Logs the contents of the given window's global exception store. - * - * @param win {String} The target window. Must evaluate to a JavaScript Window - * object. Default: The AUT's window. - * @return {Integer} The number of global errors. - */ -simulation.Simulation.prototype.logGlobalErrors = function(win) -{ - var targetWin = win || ""; - var exceptions = this.getEval("selenium.qxStoredVars['autWindow'].qx.Simulation.getGlobalErrors(" + targetWin + ")", "Retrieving global error store"); - var ex = String(exceptions); - if (ex.length > 0) { - var exArr = ex.split("|"); - for (var i = 0; i < exArr.length; i++) { - this.log("Global Error Handler caught exception: " + exArr[i], "error"); - } - return exArr.length - } - return 0; -}; - -/** - * Empties the given window's global exception store. - * - * @param win {String} The target window. Must evaluate to a JavaScript Window - * object. Default: The AUT's window. - * @return {void} - */ -simulation.Simulation.prototype.clearGlobalErrorStore = function(win) -{ - var targetWin = win || "selenium.qxStoredVars['autWindow']"; - this.getEval(targetWin + ".qx.Simulation.errorStore = [];", "Clearing errorStore"); -}; \ No newline at end of file Copied: trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/Simulation.js (from rev 21790, trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js) =================================================================== --- trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/Simulation.js (rev 0) +++ trunk/qooxdoo-contrib/Simulator/2.1/tool/selenium/simulation/Simulation.js 2012-11-15 08:23:00 UTC (rev 21797) @@ -0,0 +1,1363 @@ +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2006-2009 1&1 Internet AG, Germany, http://www.1and1.org + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Daniel Wagner (d_wagner) + +************************************************************************ */ + +// Create the simulation namespace if it doesn't exist +var simulation = simulation || {}; + +/** + * This class represents automated interaction tests ("Simulations") of + * qooxdoo-based applications. It contains generic functionality such as + * logging and error handling that is reused across multiple Simulations. + * + * Actual Simulations should extend this class with their own methods containing + * code specific to the application to be tested, such as simulated user + * interaction using qooxdoo locators[1]. + * + * This code is intended to be run through Mozilla Rhino as described in the + * Simulator manual[2]. + * + * [1] http://qooxdoo.org/contrib/project/simulator/selenium-user-extension + * [2] http://qooxdoo.org/contrib/project/simulator#javascript + * + * @constructor + * @param baseConf {Map} basic configuration settings for this Simulation + * @param args {String} optional Rhino command line arguments + */ +simulation.Simulation = function(baseConf, args) +{ + // Basic sanity check: No sense in continuing without QxSelenium. + try { + importClass(Packages.com.thoughtworks.selenium.QxSelenium); + } + catch(ex) { + throw new Error("Couldn't import QxSelenium class! Make sure the qooxdoo " + + "Selenium user extensions are installed in your Selenium client.\n" + ex); + } + + // Required configuration settings. Can't run a test without these. + var required = ['selServer', 'selPort', 'testBrowser', 'autHost', 'autPath']; + + // Some default settings. + var defaults = { + debug : false, + autName : "Unnamed Application", + selServer : 'localhost', + selPort : 4444, + stepSpeed : "250", + globalTimeout : 120000, + disposerDebug : false, + applicationLog : true + }; + + /* + * Frequently used Javascript code snippets meant to be run in the tested + * application's context through the getEval() method. + */ + simulation.Simulation.SELENIUMWINDOW = 'selenium.qxStoredVars["autWindow"]'; + simulation.Simulation.QXAPPINSTANCE = 'qx.core.Init.getApplication()'; + simulation.Simulation.ISQXAPPREADY = 'var qxReady = false; try { if (' + + simulation.Simulation.SELENIUMWINDOW + '.' + + simulation.Simulation.QXAPPINSTANCE + + ') { qxReady = true; } } catch(e) {} qxReady;'; + + + var __totalErrorsLogged = 0; + var __totalWarningsLogged = 0; + + this.testFailed = false; + + /** + * Sets the total number of errors logged. + * + * @private + * @param errors {Integer} The new error count + * @return {void} + */ + setTotalErrorsLogged = function(errors) + { + __totalErrorsLogged = errors; + }; + + /** + * Sets the total number of warnings logged. + * + * @private + * @param warnings {Integer} The new warning count + * @return {void} + */ + setTotalWarningsLogged = function(warnings) + { + __totalWarningsLogged = warnings; + }; + + /** + * Returns the total number of errors logged by the {@link #log} method. + * + * @return {Integer} Number of errors logged so far in the current Simulation + */ + this.getTotalErrorsLogged = function() + { + return __totalErrorsLogged; + }; + + + /** + * Returns the total number of warnings logged by the {@link #log} method. + * + * @return {Integer} Number of warnings logged so far in the current Simulation + */ + this.getTotalWarningsLogged = function() + { + return __totalWarningsLogged; + }; + + /** + * Initalizes the configuration, sets defaults if necessary and validates the + * configuration. + * + * @private + * @param baseConf {Map} a map of configuration settings + * @param args {String} optional space-delimited string of 'key=value' pairs + * @return {Map} the configuration for this Simulation instance + * @throws an exception if a required setting is missing + */ + function initConfig(baseConf, args) + { + /* + * If the script was called with any external arguments (e.g. on the Rhino + * command line), add those settings to the config map, overriding any + * properties already defined in baseConf. + */ + + var conf = baseConf || {}; + if (args) { + var argConf = getConfigFromArgs(args); + for (var prop in argConf) { + conf[prop] = argConf[prop]; + } + } + + // Set defaults if they're not already set. + for (var key in defaults) { + if (!(key in conf)) { + conf[key] = defaults[key]; + } + } + + // Check if all required keys are set. + for (var i=0,l=required.length; i<l; i++) { + if (!(required[i] in conf)) { + throw new Error("Required property " + required[i] + " not in configuration!"); + } + } + + return conf; + } + + var __config = initConfig(baseConf || false, args || false); + + /** + * Split an array of 'key=value' strings (e.g. Rhino's arguments property) and + * store them in a map. + * + * @private + * @param args {String} a space-delimited string of 'key=value' pairs + * @return {Map} a map of key-value pairs + */ + function getConfigFromArgs(args) + { + var conf = {}; + for (var i in args) { + if (args[i].indexOf("=") >0) { + var tempArr = args[i].split("="); + if (tempArr[1] == "true") { + conf[tempArr[0]] = true; + } + else if (tempArr[1] == "false") { + conf[tempArr[0]] = false; + } + else { + conf[tempArr[0]] = tempArr[1]; + } + } + } + return conf; + } + + /** + * Public getter for configuration settings. + * + * @param prop {String} the name of a configuration key + * @param defaultValue {String} Optional value to be returned if the key isn't + * defined in the configuration + * @return {String} the value of the requested configuration key + * @throw an exception if no key was specified or the key doesn't exist in the + * configuration map and no default value was specified + */ + this.getConfigSetting = function(prop, defaultValue) + { + if (!prop) { + throw new Error("No configuration key specified!"); + } + + if (!(prop in __config)) { + if (defaultValue || typeof(defaultValue) == "boolean") { + return defaultValue; + } + else { + throw new Error("Key " + prop + " not in configuration!"); + } + } + else { + return __config[prop]; + } + }; + + function addZero(val) + { + if (val < 10) { + val = "0" + val; + } + return val; + } + + this.startDate = new Date(); + + this.startDateString = this.startDate.getFullYear() + "-"; + + var month = this.startDate.getMonth() + 1; + this.startDateString += addZero(month) + "-"; + + var day = this.startDate.getDate(); + this.startDateString += addZero(day) + " "; + + var hours = this.startDate.getHours(); + this.startDateString += addZero(hours) + ":"; + + var minutes = this.startDate.getMinutes(); + this.startDateString += addZero(minutes) + ":"; + + var seconds = this.startDate.getSeconds(); + this.startDateString += addZero(seconds); + + // Determine the name for the log file. + if (!("logFile" in __config)) { + var fname = __config.autName + "_" + this.startDate.getTime() + ".log"; + __config.logFile = fname; + } + +}; + +/** + * Increments the number of total errors logged by one + * + * @return {void} + */ +simulation.Simulation.prototype.incrementTotalErrorsLogged = function() +{ + var oldCount = this.getTotalErrorsLogged(); + var newCount = oldCount + 1; + setTotalErrorsLogged(newCount); +}; + +/** + * Increments the number of total warnings logged by one + * + * @return {void} + */ +simulation.Simulation.prototype.incrementTotalWarningsLogged = function() +{ + var oldCount = this.getTotalWarningsLogged(); + var newCount = oldCount + 1; + setTotalWarningsLogged(newCount); +}; + +/** + * Start the Selenium session and set some basic options. + * + * @return {Boolean} true if the Selenium session started without errors + */ +simulation.Simulation.prototype.startSession = function() +{ + if (this.getConfigSetting("debug")) { + print("Starting " + this.getConfigSetting("autName") + " session with browser " + this.getConfigSetting("testBrowser")); + } + + // Create QxSelenium instance. + try { + this.__sel = new QxSelenium(this.getConfigSetting("selServer"),this.getConfigSetting("selPort"), + this.getConfigSetting("testBrowser"),this.getConfigSetting("autHost")); + } + catch(ex) { + throw new Error("Unable to create QxSelenium instance: " + ex); + } + + try { + this.__sel.start(); + if (this.getConfigSetting("windowMaximize", false)) { + this.__sel.windowMaximize(); + } + this.__sel.setTimeout(this.getConfigSetting("globalTimeout")); + this.__sel.open(this.getConfigSetting("autHost") + "" + this.getConfigSetting("autPath")); + this.__sel.setSpeed(this.getConfigSetting("stepSpeed")); + this.setupEnvironment(); + this.logEnvironment(); + this.logUserAgent(); + } + catch (ex) { + this.logEnvironment("file"); + this.log("User agent: " + this.getConfigSetting("browserId"), "none", "file"); + var msg = "ERROR: Unable to start test session: " + ex; + print(msg); + this.log(msg, "error", "file"); + return false; + } + return true; +}; + +/** + * Add some testing utilities to the qooxdoo application. Must be called + * after the application is (re)loaded. + */ +simulation.Simulation.prototype.setupEnvironment = function() +{ + try { + /* + * Store the AUT window object to avoid calling + * selenium.browserbot.getCurrentWindow() repeatedly. + */ + this.__sel.getEval('selenium.qxStoredVars = {}'); + // IE6/7 sometimes freeze if the next command is executed immediately + Packages.java.lang.Thread.sleep(1000); + this.storeEval('selenium.browserbot.getCurrentWindow()', 'autWindow'); + + this.prepareNameSpace(); + this.addSanitizer(); + } + catch(ex) { + this.log("Error while setting up test environment: " + ex, "error"); + } +}; + +/** + * Open a URI containing a qooxdoo application and prepare it for testing. If no + * URI is given, the current AUT is reloaded. + * + * @param {String} uri Optional URI of the qooxdoo application to be loaded. + */ +simulation.Simulation.prototype.qxOpen = function(uri) +{ + var openUri = uri || this.getConfigSetting("autHost") + "" + this.getConfigSetting("autPath"); + this.__sel.open(openUri); + this.setupEnvironment(); +}; + +/** + * Attaches a "Simulation" namespace object to the specified window's qx object. + * This will be used to store custom methods added by addOwnFunction. If no + * window is specified, the AUT's window is used. + * + * @param win {String} The name of the target window. Must evaluate to a + * JavaScript Window object. + * @return {void} + */ +simulation.Simulation.prototype.prepareNameSpace = function(win) +{ + var targetWin = win || 'selenium.qxStoredVars["autWindow"]'; + var qx = String(this.getEval(targetWin + '.qx', 'Checking for qx namespace')); + if (qx == "null" || ns == "undefined") { + this.getEval(targetWin + '.qx = {};', 'Creating qx namespace'); + } + + var ns = String(this.getEval(targetWin + '.qx.Simulation', 'Checking for qx.Simulation namespace')); + if (ns == "null" || ns == "undefined") { + this.getEval(targetWin + '.qx.Simulation = {};', 'Creating qx.Simulation namespace'); + } +}; + +/** + * Wrapper around Selenium's <code>getEval</code> that catches and logs any exceptions so + * they won't cause the entire test to fail. + * + * @param code {String} JavaScript code to be evaluated + * @param description {String} optional description that will be logged if there + * was an exception during evaluation + * @throw an exception if no code was specified + * @return the results of the evaluation + */ +simulation.Simulation.prototype.getEval = function(code, description) +{ + if (!code) { + throw new Error("No code specified for getEval()"); + } + + if (this.getConfigSetting("debug") && description) { + print(description); + } + + var desc = description ? description : "Evaluating script"; + + var ret = false; + try { + ret = this.__sel.getEval(code); + } + catch(ex) { + this.log("ERROR: " + desc + ": " + ex, "error"); + print("ERROR: " + desc + ": " + ex + " \nScript code:\n " + code); + } + + return ret; +}; + +/** + * Wrapper around Selenium's <code>runScript</code> that catches and logs any exceptions so + * they won't cause the entire test to fail. + * + * @param code {String} JavaScript code to be evaluated + * @param description {String} optional description that will be logged if there + * was an exception during evaluation + * @throw an exception if no code was specified + * @return {void} + */ +simulation.Simulation.prototype.runScript = function(code, description) +{ + if (!code) { + throw new Error("No code specified for runScript()"); + } + + var desc = description ? description : "Running script"; + + if (this.getConfigSetting("debug")) { + print(desc); + } + + try { + this.__sel.runScript(code); + } + catch(ex) { + this.log("ERROR: " + desc + ": " + ex, "error"); + print("ERROR: " + desc + ": " + ex + " \nScript code:\n " + code); + } + + return; +}; + +/** + * Wrapper around QxSelenium's qxClick method that catches and logs any + * exceptions so they won't cause the Simulation to fail. + * + * @param locator {String} Selenium locator identifying the element that should + * receive the click event + * @param description {String} optional description that will be logged if there + * was an exception during evaluation + * @throw an exception if no locator was specified + * @return {void} + */ +simulation.Simulation.prototype.qxClick = function(locator, options, description) +{ + if (!locator) { + throw new Error("No locator specified for qxClick()"); + } + + var desc = description ? description : "Executing qxClick"; + + if (this.getConfigSetting("debug")) { + print(desc); + } + + try { + this.__sel.qxClick(locator, options); + } + catch(ex) { + this.log("ERROR: " + desc + ": " + ex, "error"); + print("ERROR: " + desc + ": " + ex + " \nLocator:\n " + locator); + } + + return; +}; + +/** + * Wrapper around QxSelenium's qxType() that catches and logs any exceptions so + * they won't cause the entire test to fail. + * + * @param locator {String} Selenium locator identifying the element that should + * receive the keydown/keyup/keypress events + * @param text {String} the text to be typed + * @param keys {Boolean} use Selenium's "typeKeys" instead of "type" if true + * @throw an exception if no locator or text were specified + * @return {void} + */ +simulation.Simulation.prototype.qxType = function(locator, text, keys) +{ + if (!locator) { + throw new Error("No locator specified for type()"); + } + + if (typeof(text) != "string") { + throw new Error("No text specified for type()"); + } + + if (this.getConfigSetting("debug")) { + print("Typing: " + text); + } + + var qxSelCmd = keys ? "qxTypeKeys" : "qxType"; + + try { + this.__sel[qxSelCmd](locator, text); + } + catch(ex) { + this.log("Unable to enter text: " + ex + " \nText:\n " + text, "error"); + } +}; + +/** + * Wrapper around QxSelenium's qxTypeKeys() that catches and logs any exceptions + * so they won't cause the entire test to fail. + * + * @param locator {String} Selenium locator identifying the element that should + * receive the keydown/keyup/keypress events + * @param text {String} the text to be typed + * @throw an exception if no locator or text were specified + * @return {void} + */ +simulation.Simulation.prototype.qxTypeKeys = function(locator, text) +{ + this.qxType(locator, text, true); +}; + +/** + * Wrapper around QxSelenium's qxTableClick() that catches and logs any + * exceptions so they won't cause the entire test to fail. + * + * @param locator {String} Selenium locator identifying a qooxdoo table object + * @param options {String} Options for the command, e.g + * "row=4,column=3,button=right" + * @throw an exception if no locator was specified + * @return {void} + */ +simulation.Simulation.prototype.qxTableClick = function(locator, options) +{ + if (!locator) { + throw new Error("No locator specified for qxTableClick()"); + } + + try { + this.__sel.qxTableClick(locator, options); + } + catch(ex) { + this.log("ERROR: qxTableClick " + ex, "error"); + print("ERROR: qxTableClick " + ex + " \nLocator:\n " + locator); + } +}; + +/** + * Wrapper around QxSelenium's qxDragAndDropToObject() that catches and logs any + * exceptions so they won't cause the entire test to fail. + * + * @param dragLocator {String} Selenium locator identifying the drag target + * @param dropLocator {String} Selenium locator identifying the drop target + * @throw an exception if no locators were specified + * @return {void} + */ +simulation.Simulation.prototype.qxDragAndDropToObject = function(dragLocator, dropLocator) +{ + if (!dragLocator) { + throw new Error("No drag target locator specified for qxDragAndDropToObject()"); + } + if (!dropLocator) { + throw new Error("No drop target locator specified for qxDragAndDropToObject()"); + } + + try { + this.__sel.qxDragAndDropToObject(dragLocator, dropLocator); + } + catch(ex) { + this.log("ERROR: qxDragAndDropToObject " + ex, "error"); + print("ERROR: qxDragAndDropToObject "); + } +}; + +/** + * Opens a log file and returns the file object. + * + * @return {Object} the log file object (java.io.BufferedWriter instance) + */ +simulation.Simulation.prototype.getLogFile = function() +{ + var fstream = new java.io.FileWriter(this.getConfigSetting("logFile"), true); + var out = new java.io.BufferedWriter(fstream); + return out; +}; + +/** + * Formats a message according to the error level, then writes it to the local + * log file and optionally to the Selenium server's browser-side log. + * + * @param text {String} the message to be logged + * @... [truncated message content] |
From: <th...@us...> - 2012-10-30 10:03:35
|
Revision: 21796 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21796&view=rev Author: thron7 Date: 2012-10-30 10:03:20 +0000 (Tue, 30 Oct 2012) Log Message: ----------- [BUG #6488] adding .po files for qx2.2 Added Paths: ----------- trunk/qooxdoo-contrib/Translation/2.2/ trunk/qooxdoo-contrib/Translation/2.2/feedreader/ trunk/qooxdoo-contrib/Translation/2.2/feedreader/cs.po trunk/qooxdoo-contrib/Translation/2.2/feedreader/de.po trunk/qooxdoo-contrib/Translation/2.2/feedreader/en.po trunk/qooxdoo-contrib/Translation/2.2/feedreader/es.po trunk/qooxdoo-contrib/Translation/2.2/feedreader/fr.po trunk/qooxdoo-contrib/Translation/2.2/feedreader/it.po trunk/qooxdoo-contrib/Translation/2.2/feedreader/nl.po trunk/qooxdoo-contrib/Translation/2.2/feedreader/ro.po trunk/qooxdoo-contrib/Translation/2.2/feedreader/sv.po trunk/qooxdoo-contrib/Translation/2.2/framework/ trunk/qooxdoo-contrib/Translation/2.2/framework/cs.po trunk/qooxdoo-contrib/Translation/2.2/framework/de.po trunk/qooxdoo-contrib/Translation/2.2/framework/en.po trunk/qooxdoo-contrib/Translation/2.2/framework/es.po trunk/qooxdoo-contrib/Translation/2.2/framework/fr.po trunk/qooxdoo-contrib/Translation/2.2/framework/it.po trunk/qooxdoo-contrib/Translation/2.2/framework/nb.po trunk/qooxdoo-contrib/Translation/2.2/framework/nl.po trunk/qooxdoo-contrib/Translation/2.2/framework/pl.po trunk/qooxdoo-contrib/Translation/2.2/framework/pt.po trunk/qooxdoo-contrib/Translation/2.2/framework/ro.po trunk/qooxdoo-contrib/Translation/2.2/framework/sl.po trunk/qooxdoo-contrib/Translation/2.2/framework/sv.po trunk/qooxdoo-contrib/Translation/2.2/playground/ trunk/qooxdoo-contrib/Translation/2.2/playground/cs.po trunk/qooxdoo-contrib/Translation/2.2/playground/de.po trunk/qooxdoo-contrib/Translation/2.2/playground/en.po trunk/qooxdoo-contrib/Translation/2.2/playground/ro.po trunk/qooxdoo-contrib/Translation/2.2/playground/sv.po trunk/qooxdoo-contrib/Translation/2.2/showcase/ trunk/qooxdoo-contrib/Translation/2.2/showcase/cs.po trunk/qooxdoo-contrib/Translation/2.2/showcase/de.po trunk/qooxdoo-contrib/Translation/2.2/showcase/de_AT.po trunk/qooxdoo-contrib/Translation/2.2/showcase/de_DE.po trunk/qooxdoo-contrib/Translation/2.2/showcase/en.po trunk/qooxdoo-contrib/Translation/2.2/showcase/en_GB.po trunk/qooxdoo-contrib/Translation/2.2/showcase/en_US.po trunk/qooxdoo-contrib/Translation/2.2/showcase/es.po trunk/qooxdoo-contrib/Translation/2.2/showcase/es_ES.po trunk/qooxdoo-contrib/Translation/2.2/showcase/es_MX.po trunk/qooxdoo-contrib/Translation/2.2/showcase/pt.po trunk/qooxdoo-contrib/Translation/2.2/showcase/ro.po trunk/qooxdoo-contrib/Translation/2.2/showcase/ro_RO.po trunk/qooxdoo-contrib/Translation/2.2/showcase/sv.po trunk/qooxdoo-contrib/Translation/2.2/showcase/sv_SE.po Added: trunk/qooxdoo-contrib/Translation/2.2/feedreader/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/feedreader/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/feedreader/cs.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,78 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2012-08-27 08:22+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: Czech\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" + +msgid "Add" +msgstr "Přidat" + +msgid "Add a feed" +msgstr "Přidat zdroj" + +msgid "Add feed" +msgstr "Přidat zdroj" + +msgid "Back" +msgstr "Zpět" + +msgid "Cancel" +msgstr "Storno" + +msgid "Feed Information" +msgstr "Informace o zdroji" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (běží na qooxdoo)" + +msgid "Help" +msgstr "Nápověda" + +msgid "Language" +msgstr "Jazyk" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Otevřít okno nastavení." + +msgid "Posts" +msgstr "Příspěvky" + +msgid "Preferences" +msgstr "Nastavení" + +msgid "Reload" +msgstr "Obnovit" + +msgid "Reload the feeds. (%1)" +msgstr "Obnovit zdroje. (%1)" + +msgid "Remove feed" +msgstr "Odstranit zdroj" + +msgid "Static Feeds" +msgstr "Statické zdroje" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Název" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Uživatelské zdroje" Added: trunk/qooxdoo-contrib/Translation/2.2/feedreader/de.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/feedreader/de.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/feedreader/de.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,76 @@ +# German +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"PO-Revision-Date: 2008-06-23 16:26+0200\n" +"Last-Translator: Thomas Herchenroeder <thron7 AT users DOT sourceforge DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "Add" +msgstr "Hinzufügen" + +msgid "Add a feed" +msgstr "Feed hinzufügen" + +msgid "Add feed" +msgstr "Feed hinzufügen" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Abbrechen" + +msgid "Feed Information" +msgstr "Feed Information" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo powered)" + +msgid "Help" +msgstr "Hilfe" + +msgid "Language" +msgstr "Sprache" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Einstellungsfenster öffnen" + +msgid "Posts" +msgstr "Nachrichten" + +msgid "Preferences" +msgstr "Einstellungen" + +msgid "Reload" +msgstr "Neu laden" + +msgid "Reload the feeds. (%1)" +msgstr "Feeds neu laden. (%1)" + +msgid "Remove feed" +msgstr "Feed löschen" + +msgid "Static Feeds" +msgstr "Vordefinierte Quellen" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titel" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Eigene Quellen" Added: trunk/qooxdoo-contrib/Translation/2.2/feedreader/en.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/feedreader/en.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/feedreader/en.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,77 @@ +# English +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2006-12-21 10:17+0100\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ASCII\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Add" +msgstr "" + +msgid "Add a feed" +msgstr "" + +msgid "Add feed" +msgstr "" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Feed Information" +msgstr "" + +msgid "FeedReader (qooxdoo powered)" +msgstr "" + +msgid "Help" +msgstr "" + +msgid "Language" +msgstr "" + +msgid "OK" +msgstr "" + +msgid "Open preferences window." +msgstr "" + +msgid "Posts" +msgstr "" + +msgid "Preferences" +msgstr "" + +msgid "Reload" +msgstr "" + +msgid "Reload the feeds. (%1)" +msgstr "" + +msgid "Remove feed" +msgstr "" + +msgid "Static Feeds" +msgstr "" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "" + +msgid "URL" +msgstr "" + +msgid "User Feeds" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.2/feedreader/es.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/feedreader/es.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/feedreader/es.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,78 @@ +# Spanish +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2008-08-25 19:54-0500\n" +"Last-Translator: Camilo Aguilar <camilo DOT aguila AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Country: COLOMBIA\n" +"X-Poedit-Language: Spanish\n" + +msgid "Add" +msgstr "Agregar" + +msgid "Add a feed" +msgstr "Agregar Feed" + +msgid "Add feed" +msgstr "Agregar feed" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Feed Information" +msgstr "Información del Feed" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo powered)" + +msgid "Help" +msgstr "Ayuda" + +msgid "Language" +msgstr "Lenguaje" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Abre la ventana de preferencias" + +msgid "Posts" +msgstr "Posts" + +msgid "Preferences" +msgstr "Preferencias" + +msgid "Reload" +msgstr "Actualizar" + +msgid "Reload the feeds. (%1)" +msgstr "Recargar los feeds (%1)" + +msgid "Remove feed" +msgstr "Eliminar feed" + +msgid "Static Feeds" +msgstr "Feeds Estáticos" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Título" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Feeds del Usuario" Added: trunk/qooxdoo-contrib/Translation/2.2/feedreader/fr.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/feedreader/fr.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/feedreader/fr.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,77 @@ +# French +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-11-09 22:22+0100\n" +"PO-Revision-Date: 2007-04-07 11:30+0200\n" +"Last-Translator: Daniel Gagnon <redalastor AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Add" +msgstr "Ajouter" + +msgid "Add a feed" +msgstr "Ajouter un fil" + +msgid "Add feed" +msgstr "Ajouter un fil" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Feed Information" +msgstr "Information sur le fil" + +msgid "FeedReader (qooxdoo powered)" +msgstr "Agrégateur de fils de syndication (fait à l'aide de qooxdoo)" + +msgid "Help" +msgstr "Aide" + +msgid "Language" +msgstr "Langue" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Ouvrir la fenêtre de préférences" + +msgid "Posts" +msgstr "Messages" + +msgid "Preferences" +msgstr "Préférences" + +msgid "Reload" +msgstr "Rafraichir" + +msgid "Reload the feeds. (%1)" +msgstr "Rafraichir les fils. (%1)" + +msgid "Remove feed" +msgstr "Enlever un fil" + +msgid "Static Feeds" +msgstr "Fils statiques" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titre" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Fils de l'utilisateur" Added: trunk/qooxdoo-contrib/Translation/2.2/feedreader/it.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/feedreader/it.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/feedreader/it.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,78 @@ +# Italian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-11-09 22:22+0100\n" +"PO-Revision-Date: 2008-08-26 18:49+0100\n" +"Last-Translator: Alessandro Sala <alessandro DOT sala AT mclink DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "Add" +msgstr "Aggiungi" + +msgid "Add a feed" +msgstr "Aggiungi un feed" + +msgid "Add feed" +msgstr "Aggiungi un feed" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Annulla" + +msgid "Feed Information" +msgstr "Informazioni sul Feed" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (realizzato con qooxdoo)" + +msgid "Help" +msgstr "Aiuto" + +msgid "Language" +msgstr "Lingua" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Apri la finestra delle preferenze." + +msgid "Posts" +msgstr "Messaggi" + +msgid "Preferences" +msgstr "Preferenze" + +msgid "Reload" +msgstr "Ricarica" + +msgid "Reload the feeds. (%1)" +msgstr "Ricarica i feed. (%1)" + +msgid "Remove feed" +msgstr "Rimuovi il feed" + +msgid "Static Feeds" +msgstr "Feed statici" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titolo" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Feed utente" Added: trunk/qooxdoo-contrib/Translation/2.2/feedreader/nl.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/feedreader/nl.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/feedreader/nl.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,76 @@ +# Dutch +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2009-12-11 23:51+0100\n" +"Last-Translator: Isaak Malik <isooik AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Add" +msgstr "Toevoegen" + +msgid "Add a feed" +msgstr "Een feed toevoegen" + +msgid "Add feed" +msgstr "Feed toevoegen" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Annuleren" + +msgid "Feed Information" +msgstr "Feed Informatie" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo powered)" + +msgid "Help" +msgstr "Help" + +msgid "Language" +msgstr "Taal" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Open voorkeuren venster." + +msgid "Posts" +msgstr "Berichten" + +msgid "Preferences" +msgstr "Voorkeuren" + +msgid "Reload" +msgstr "Herladen" + +msgid "Reload the feeds. (%1)" +msgstr "Feeds herladen. (%1)" + +msgid "Remove feed" +msgstr "Feed verwijderen" + +msgid "Static Feeds" +msgstr "Statische Feeds" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titel" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Gebruiker Feeds" Added: trunk/qooxdoo-contrib/Translation/2.2/feedreader/ro.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/feedreader/ro.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/feedreader/ro.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,77 @@ +# Romanian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2010-11-08 15:35+0200\n" +"Last-Translator: Gabriel Munteanu <gabriel DOT munteanu AT 1and1 DOT ro>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Add" +msgstr "Adaugă" + +msgid "Add a feed" +msgstr "Adaugă un flux" + +msgid "Add feed" +msgstr "Adaugă flux" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Anulează" + +msgid "Feed Information" +msgstr "Informații despre flux" + +msgid "FeedReader (qooxdoo powered)" +msgstr "Cititor de Fluxuri (bazat pe qooxdoo)" + +msgid "Help" +msgstr "Ajutor" + +msgid "Language" +msgstr "Limbă" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Deschide fereastra de preferințe" + +msgid "Posts" +msgstr "Articole" + +msgid "Preferences" +msgstr "Preferințe" + +msgid "Reload" +msgstr "Reîncarcă" + +msgid "Reload the feeds. (%1)" +msgstr "Reîncarcă fluxurile. (%1)" + +msgid "Remove feed" +msgstr "Şterge flux" + +msgid "Static Feeds" +msgstr "Fluxuri statice" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titlu" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Fluxuri utilizator" Added: trunk/qooxdoo-contrib/Translation/2.2/feedreader/sv.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/feedreader/sv.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/feedreader/sv.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,77 @@ +# Swedish +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-11-09 22:22+0100\n" +"PO-Revision-Date: 2008-08-27 11:10+0100\n" +"Last-Translator: Henric Johansson <henric DOT johansson AT mindset DOT se>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +msgid "Add" +msgstr "Lägg till" + +msgid "Add a feed" +msgstr "Lägg till ett flöde" + +msgid "Add feed" +msgstr "Lägg till flöde" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Feed Information" +msgstr "Flödesinformation" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo driven)" + +msgid "Help" +msgstr "Hjälp" + +msgid "Language" +msgstr "Språk" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Öppna inställningsfönstret" + +msgid "Posts" +msgstr "Poster" + +msgid "Preferences" +msgstr "Inställningar" + +msgid "Reload" +msgstr "Uppdatera" + +msgid "Reload the feeds. (%1)" +msgstr "Ladda om flödena. (%1)" + +msgid "Remove feed" +msgstr "Ta bort flöde" + +msgid "Static Feeds" +msgstr "Statiska flöden" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titel" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Användarflöden" Added: trunk/qooxdoo-contrib/Translation/2.2/framework/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/framework/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/framework/cs.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,289 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2012-08-27 09:23+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Language: Czech\n" + +msgid "%1 does not fit %2." +msgstr "%1 neodpovídá %2." + +msgid "%1 is not a color! %2" +msgstr "%1 není barva! %2" + +msgid "%1 is not a number." +msgstr "%1 není číslo." + +msgid "%1 is not a string." +msgstr "%1 není řetězec." + +msgid "%1 is not an url." +msgstr "%1 není URL." + +msgid "%1 is not in %2" +msgstr "%1 není v %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 není v intervalu [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' není e-mailová adresa." + +msgid "Automatic" +msgstr "Automaticky" + +msgid "Cancel" +msgstr "Storno" + +msgid "Color Selector" +msgstr "Výběr barvy" + +msgid "Details" +msgstr "Podrobnosti" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Předchozí měsíc" + +msgid "Last year" +msgstr "Předchozí rok" + +msgid "Next month" +msgstr "Další měsíc" + +msgid "Next year" +msgstr "Další rok" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Otevřít Výběr barvy" + +msgid "Presets" +msgstr "Předvolby" + +msgid "Preview (Old/New)" +msgstr "Náhled (starý/nový)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Obnovit šířky sloupců" + +msgid "This field is required" +msgstr "Toto pole je povinné" + +msgid "Visual" +msgstr "Vizuální" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Kontextové menu" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +msgid "key_full_Control" +msgstr "Ctrl" + +msgid "key_full_Control_Mac" +msgstr "Ctrl" + +msgid "key_full_Delete" +msgstr "Del" + +msgid "key_full_Down" +msgstr "Dolů" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Esc" + +msgid "key_full_Home" +msgstr "Home" + +msgid "key_full_Insert" +msgstr "Ins" + +msgid "key_full_Left" +msgstr "Doleva" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Num" + +msgid "key_full_PageDown" +msgstr "Page Down" + +msgid "key_full_PageUp" +msgstr "Page Up" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "Print Screen" + +msgid "key_full_Right" +msgstr "Doprava" + +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Mezerník" + +msgid "key_full_Tab" +msgstr "Tab" + +msgid "key_full_Up" +msgstr "Nahoru" + +msgid "key_full_Win" +msgstr "Win" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Kontext" + +msgid "key_short_Backspace" +msgstr "Backspace" + +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "Ctrl" + +msgid "key_short_Delete" +msgstr "Delete" + +msgid "key_short_Down" +msgstr "Dolů" + +msgid "key_short_End" +msgstr "End" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Home" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Doleva" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num" + +msgid "key_short_PageDown" +msgstr "PgDn" + +msgid "key_short_PageUp" +msgstr "PgUp" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "PrSc" + +msgid "key_short_Right" +msgstr "Doprava" + +msgid "key_short_Scroll" +msgstr "ScLck" + +msgid "key_short_Shift" +msgstr "Shift" + +msgid "key_short_Space" +msgstr "Mezera" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Nahoru" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "jeden řádek z jednoho" +msgstr[1] "%1 ze %2 řádků" +msgstr[2] "%1 z %2 řádků" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "jeden řádek" +msgstr[1] "%1 řádky" +msgstr[2] "%1 řádků" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.2/framework/de.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/framework/de.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/framework/de.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,285 @@ +# German +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-22 17:53+0100\n" +"Last-Translator: Thomas Herchenroeder <thron7 AT users DOT sourceforge DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "%1 does not fit %2." +msgstr "%1 passt nicht zu %2." + +msgid "%1 is not a color! %2" +msgstr "%1 ist keine Farbe! %2" + +msgid "%1 is not a number." +msgstr "%1 ist keine Nummer." + +msgid "%1 is not a string." +msgstr "%1 ist keine Zeichenkette." + +msgid "%1 is not an url." +msgstr "%1 ist keine URL." + +msgid "%1 is not in %2" +msgstr "%1 ist nicht in %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 liegt nicht im Intervall [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' ist keine Emailadresse." + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Cancel" +msgstr "Abbruch" + +msgid "Color Selector" +msgstr "Farbauswahl" + +msgid "Details" +msgstr "Details" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Vorheriger Monat" + +msgid "Last year" +msgstr "Vorheriges Jahr" + +msgid "Next month" +msgstr "Nächster Monat" + +msgid "Next year" +msgstr "Nächstes Jahr" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Öffne Farbauswahl" + +msgid "Presets" +msgstr "Voreinstellungen" + +msgid "Preview (Old/New)" +msgstr "Vorschau (alt/neu)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Spaltenbreite zurücksetzen" + +msgid "This field is required" +msgstr "Dieses Feld ist erforderlich" + +msgid "Visual" +msgstr "Visuell" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Kontextmenü" + +msgid "key_full_Backspace" +msgstr "Rücktaste" + +msgid "key_full_CapsLock" +msgstr "Feststelltaste" + +msgid "key_full_Control" +msgstr "Steuerung" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Entfernen" + +msgid "key_full_Down" +msgstr "Pfeil runter" + +msgid "key_full_End" +msgstr "Ende" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Position 1" + +msgid "key_full_Insert" +msgstr "Einfügen" + +msgid "key_full_Left" +msgstr "Pfeil links" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "NumLock" + +msgid "key_full_PageDown" +msgstr "Bild runter" + +msgid "key_full_PageUp" +msgstr "Bild hoch" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "Drucken" + +msgid "key_full_Right" +msgstr "Pfeil rechts" + +msgid "key_full_Scroll" +msgstr "Rollen" + +msgid "key_full_Shift" +msgstr "Umschalttaste" + +msgid "key_full_Space" +msgstr "Leertaste" + +msgid "key_full_Tab" +msgstr "Tabulator" + +msgid "key_full_Up" +msgstr "Pfeil hoch" + +msgid "key_full_Win" +msgstr "Windowstaste" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Kontext" + +msgid "key_short_Backspace" +msgstr "Rück" + +msgid "key_short_CapsLock" +msgstr "Feststell" + +msgid "key_short_Control" +msgstr "Strg" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Entf" + +msgid "key_short_Down" +msgstr "Runter" + +msgid "key_short_End" +msgstr "Ende" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Pos1" + +msgid "key_short_Insert" +msgstr "Einfg" + +msgid "key_short_Left" +msgstr "Links" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num" + +msgid "key_short_PageDown" +msgstr "Bild runter" + +msgid "key_short_PageUp" +msgstr "Bild hoch" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "Druck" + +msgid "key_short_Right" +msgstr "Rechts" + +msgid "key_short_Scroll" +msgstr "Rollen" + +msgid "key_short_Shift" +msgstr "Umschalt" + +msgid "key_short_Space" +msgstr "Leer" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Hoch" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "Eine von einer Zeile" +msgstr[1] "%1 von %2 Zeilen" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "Eine Zeile" +msgstr[1] "%1 Zeilen" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.2/framework/en.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/framework/en.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/framework/en.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,284 @@ +# English +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2007-01-23 17:53+0100\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ASCII\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "%1 does not fit %2." +msgstr "" + +msgid "%1 is not a color! %2" +msgstr "" + +msgid "%1 is not a number." +msgstr "" + +msgid "%1 is not a string." +msgstr "" + +msgid "%1 is not an url." +msgstr "" + +msgid "%1 is not in %2" +msgstr "" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "" + +msgid "'%1' is not an email address." +msgstr "" + +msgid "Automatic" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Color Selector" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "HSB" +msgstr "" + +msgid "Hex" +msgstr "" + +msgid "Last month" +msgstr "" + +msgid "Last year" +msgstr "" + +msgid "Next month" +msgstr "" + +msgid "Next year" +msgstr "" + +msgid "OK" +msgstr "" + +msgid "Open ColorSelector" +msgstr "" + +msgid "Presets" +msgstr "" + +msgid "Preview (Old/New)" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Reset column widths" +msgstr "" + +msgid "This field is required" +msgstr "" + +msgid "Visual" +msgstr "" + +msgid "key_full_Alt" +msgstr "" + +msgid "key_full_Apps" +msgstr "" + +msgid "key_full_Backspace" +msgstr "" + +msgid "key_full_CapsLock" +msgstr "" + +msgid "key_full_Control" +msgstr "" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "" + +msgid "key_full_Down" +msgstr "" + +msgid "key_full_End" +msgstr "" + +msgid "key_full_Enter" +msgstr "" + +msgid "key_full_Escape" +msgstr "" + +msgid "key_full_Home" +msgstr "" + +msgid "key_full_Insert" +msgstr "" + +msgid "key_full_Left" +msgstr "" + +msgid "key_full_Meta" +msgstr "" + +msgid "key_full_NumLock" +msgstr "" + +msgid "key_full_PageDown" +msgstr "" + +msgid "key_full_PageUp" +msgstr "" + +msgid "key_full_Pause" +msgstr "" + +msgid "key_full_PrintScreen" +msgstr "" + +msgid "key_full_Right" +msgstr "" + +msgid "key_full_Scroll" +msgstr "" + +msgid "key_full_Shift" +msgstr "" + +msgid "key_full_Space" +msgstr "" + +msgid "key_full_Tab" +msgstr "" + +msgid "key_full_Up" +msgstr "" + +msgid "key_full_Win" +msgstr "" + +msgid "key_short_Alt" +msgstr "" + +msgid "key_short_Apps" +msgstr "" + +msgid "key_short_Backspace" +msgstr "" + +msgid "key_short_CapsLock" +msgstr "" + +msgid "key_short_Control" +msgstr "" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "" + +msgid "key_short_Down" +msgstr "" + +msgid "key_short_End" +msgstr "" + +msgid "key_short_Enter" +msgstr "" + +msgid "key_short_Escape" +msgstr "" + +msgid "key_short_Home" +msgstr "" + +msgid "key_short_Insert" +msgstr "" + +msgid "key_short_Left" +msgstr "" + +msgid "key_short_Meta" +msgstr "" + +msgid "key_short_NumLock" +msgstr "" + +msgid "key_short_PageDown" +msgstr "" + +msgid "key_short_PageUp" +msgstr "" + +msgid "key_short_Pause" +msgstr "" + +msgid "key_short_PrintScreen" +msgstr "" + +msgid "key_short_Right" +msgstr "" + +msgid "key_short_Scroll" +msgstr "" + +msgid "key_short_Shift" +msgstr "" + +msgid "key_short_Space" +msgstr "" + +msgid "key_short_Tab" +msgstr "" + +msgid "key_short_Up" +msgstr "" + +msgid "key_short_Win" +msgstr "" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "" +msgstr[1] "" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "" +msgstr[1] "" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.2/framework/es.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/framework/es.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/framework/es.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,285 @@ +# Spanish +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-20 17:10+0200\n" +"PO-Revision-Date: 2010-04-26 19:59-0500\n" +"Last-Translator: Carsten Rammoser <carsten AT rammoser DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Country: GERMANY\n" +"X-Poedit-Language: Spanish\n" + +msgid "%1 does not fit %2." +msgstr "%1 no corresponde con %2." + +msgid "%1 is not a color! %2" +msgstr "%1 no es un color! %2" + +msgid "%1 is not a number." +msgstr "%1 no es un número." + +msgid "%1 is not a string." +msgstr "%1 no es una cadena de caracteres." + +msgid "%1 is not an url." +msgstr "%1 no es un url." + +msgid "%1 is not in %2" +msgstr "%1 no se encuentra en %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 no se encuentra en el rango [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' no es un correo electrónico." + +msgid "Automatic" +msgstr "Automático" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Color Selector" +msgstr "Selector de color" + +msgid "Details" +msgstr "Detalles" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Último mes" + +msgid "Last year" +msgstr "Último año" + +msgid "Next month" +msgstr "Mes siguiente" + +msgid "Next year" +msgstr "Año siguiente" + +msgid "OK" +msgstr "Aceptar" + +msgid "Open ColorSelector" +msgstr "Abrir Selector de Color" + +msgid "Presets" +msgstr "Preselecciones" + +msgid "Preview (Old/New)" +msgstr "Vista previa (Viejo/Nuevo)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Reestablecer anchos de columnas" + +msgid "This field is required" +msgstr "Este cuadro es obligatorio" + +msgid "Visual" +msgstr "Visual" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Aplicaciones" + +msgid "key_full_Backspace" +msgstr "Retroceso" + +msgid "key_full_CapsLock" +msgstr "Bloqueo Mayúsculas" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Suprimir" + +msgid "key_full_Down" +msgstr "Flecha abajo" + +msgid "key_full_End" +msgstr "Fin" + +msgid "key_full_Enter" +msgstr "Intro" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Inicio" + +msgid "key_full_Insert" +msgstr "Insertar" + +msgid "key_full_Left" +msgstr "Flecha izquierda" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Bloqueo Numérico" + +msgid "key_full_PageDown" +msgstr "Avanzar Página" + +msgid "key_full_PageUp" +msgstr "Retroceder Página" + +msgid "key_full_Pause" +msgstr "Pausa" + +msgid "key_full_PrintScreen" +msgstr "Imprimir Pantalla" + +msgid "key_full_Right" +msgstr "Flecha derecha" + +msgid "key_full_Scroll" +msgstr "Bloq. Despl." + +msgid "key_full_Shift" +msgstr "Mayúscula" + +msgid "key_full_Space" +msgstr "Espacio" + +msgid "key_full_Tab" +msgstr "Tabulador" + +msgid "key_full_Up" +msgstr "Flecha arriba" + +msgid "key_full_Win" +msgstr "Windows" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Aplic" + +msgid "key_short_Backspace" +msgstr "Retroceso" + +msgid "key_short_CapsLock" +msgstr "BloqMayús" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Supr" + +msgid "key_short_Down" +msgstr "Abajo" + +msgid "key_short_End" +msgstr "Fin" + +msgid "key_short_Enter" +msgstr "Intro" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Inicio" + +msgid "key_short_Insert" +msgstr "Insert" + +msgid "key_short_Left" +msgstr "Izquierda" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "BloqNum" + +msgid "key_short_PageDown" +msgstr "AvPág" + +msgid "key_short_PageUp" +msgstr "RePág" + +msgid "key_short_Pause" +msgstr "Pausa" + +msgid "key_short_PrintScreen" +msgstr "ImprPant" + +msgid "key_short_Right" +msgstr "Derecha" + +msgid "key_short_Scroll" +msgstr "BloqDespl" + +msgid "key_short_Shift" +msgstr "Mayús" + +msgid "key_short_Space" +msgstr "Espacio" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Arriba" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "una de una fila" +msgstr[1] "%1 de %2 filas" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "una fila" +msgstr[1] "%1 filas" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.2/framework/fr.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/framework/fr.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/framework/fr.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,283 @@ +# French +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-27 15:58-0500\n" +"Last-Translator: Julien Raclot <julien DOT raclot AT 1and1 DOT fr>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "%1 does not fit %2." +msgstr "%1 ne correspond pas à %2." + +msgid "%1 is not a color! %2" +msgstr "%1 n'est pas une couleur ! %2" + +msgid "%1 is not a number." +msgstr "%1 n'est pas un chiffre." + +msgid "%1 is not a string." +msgstr "%1 n'est pas une chaîne de caractères." + +msgid "%1 is not an url." +msgstr "%1 n'est pas un URL." + +msgid "%1 is not in %2" +msgstr "%1 n'est pas dans %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 n'est pas dans l'intervalle [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1'n'est pas une adresse email." + +msgid "Automatic" +msgstr "Automatique" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Color Selector" +msgstr "Sélecteur de couleurs" + +msgid "Details" +msgstr "Détails" + +msgid "HSB" +msgstr "TSV" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Mois dernier" + +msgid "Last year" +msgstr "Année dernière" + +msgid "Next month" +msgstr "Mois prochain" + +msgid "Next year" +msgstr "Année prochaine" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Ouvrir le sélecteur de couleurs" + +msgid "Presets" +msgstr "Pré-réglages" + +msgid "Preview (Old/New)" +msgstr "Aperçu (Ancien/Nouveau)" + +msgid "RGB" +msgstr "RVB" + +msgid "Reset column widths" +msgstr "Réinitialiser la largeur des colonnes" + +msgid "This field is required" +msgstr "ce champ est requis" + +msgid "Visual" +msgstr "" + +msgid "key_full_Alt" +msgstr "Alternative" + +msgid "key_full_Apps" +msgstr "Application" + +msgid "key_full_Backspace" +msgstr "Effacement arrière" + +msgid "key_full_CapsLock" +msgstr "Verrouillage des Majuscule" + +msgid "key_full_Control" +msgstr "Contrôle" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Suppression" + +msgid "key_full_Down" +msgstr "Bas" + +msgid "key_full_End" +msgstr "Fin" + +msgid "key_full_Enter" +msgstr "Entrée" + +msgid "key_full_Escape" +msgstr "Échappement" + +msgid "key_full_Home" +msgstr "Origine" + +msgid "key_full_Insert" +msgstr "Insertion" + +msgid "key_full_Left" +msgstr "Gauche" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Verouillage Numérique" + +msgid "key_full_PageDown" +msgstr "Page Suivante" + +msgid "key_full_PageUp" +msgstr "Page Précédente" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "Impression de l'écran" + +msgid "key_full_Right" +msgstr "Droite" + +msgid "key_full_Scroll" +msgstr "Arrêt défilement" + +msgid "key_full_Shift" +msgstr "Majuscules" + +msgid "key_full_Space" +msgstr "Espace" + +msgid "key_full_Tab" +msgstr "Tabulation" + +msgid "key_full_Up" +msgstr "Haut" + +msgid "key_full_Win" +msgstr "Windows" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "App." + +msgid "key_short_Backspace" +msgstr "Effacement Arrière" + +msgid "key_short_CapsLock" +msgstr "Verr. Maj." + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Supp." + +msgid "key_short_Down" +msgstr "Bas" + +msgid "key_short_End" +msgstr "Fin" + +msgid "key_short_Enter" +msgstr "Entrée" + +msgid "key_short_Escape" +msgstr "Echap." + +msgid "key_short_Home" +msgstr "Orig." + +msgid "key_short_Insert" +msgstr "Ins." + +msgid "key_short_Left" +msgstr "Gauche" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Verr. Num." + +msgid "key_short_PageDown" +msgstr "Pg Suiv." + +msgid "key_short_PageUp" +msgstr "Pg Préc." + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "Imp. Écran" + +msgid "key_short_Right" +msgstr "Droite" + +msgid "key_short_Scroll" +msgstr "Arrêt Défil" + +msgid "key_short_Shift" +msgstr "Maj" + +msgid "key_short_Space" +msgstr "Espace" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Haut" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "ligne une de une" +msgstr[1] "ligne %1 de %2" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "une ligne" +msgstr[1] "%1 lignes" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.2/framework/it.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/framework/it.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/framework/it.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,285 @@ +# Italian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-01-15 10:00+0100\n" +"PO-Revision-Date: 2010-04-23 22:22+0200\n" +"Last-Translator: Alessandro Sala <alessandro DOT sala AT mclink DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "%1 does not fit %2." +msgstr "%1 non corrisponde a %2." + +msgid "%1 is not a color! %2" +msgstr "%1 non è un colore! %2" + +msgid "%1 is not a number." +msgstr "%1 non è un numero." + +msgid "%1 is not a string." +msgstr "%1 non è una stringa." + +msgid "%1 is not an url." +msgstr "%1 non è un url." + +msgid "%1 is not in %2" +msgstr "%1 non è contenuto in %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 non è compreso nell'intervallo [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' non è un indirizzo email." + +msgid "Automatic" +msgstr "Automatico" + +msgid "Cancel" +msgstr "Annulla" + +msgid "Color Selector" +msgstr "Selettore dei Colori" + +msgid "Details" +msgstr "Dettagli" + +msgid "HSB" +msgstr "TSL" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Mese precedente" + +msgid "Last year" +msgstr "Anno precedente" + +msgid "Next month" +msgstr "Mese successivo" + +msgid "Next year" +msgstr "Anno successivo" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Apri il Selettore dei Colori" + +msgid "Presets" +msgstr "Predefiniti" + +msgid "Preview (Old/New)" +msgstr "Anteprima (Vecchio/Nuovo)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Ripristina le larghezze delle colonne" + +msgid "This field is required" +msgstr "Questo campo è obbligatorio" + +msgid "Visual" +msgstr "Selezione visuale" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Tasto Menu" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Blocca Maiuscole" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Cancella" + +msgid "key_full_Down" +msgstr "Freccia Giù" + +msgid "key_full_End" +msgstr "Fine" + +msgid "key_full_Enter" +msgstr "Invio" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Inizio" + +msgid "key_full_Insert" +msgstr "Inserisci" + +msgid "key_full_Left" +msgstr "Freccia Sinistra" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Blocca Numeri" + +msgid "key_full_PageDown" +msgstr "Pagina Giù" + +msgid "key_full_PageUp" +msgstr "Pagina Su" + +msgid "key_full_Pause" +msgstr "Pausa" + +msgid "key_full_PrintScreen" +msgstr "Stampa Schermo" + +msgid "key_full_Right" +msgstr "Freccia Destra" + +msgid "key_full_Scroll" +msgstr "Blocca Scorrimento" + +msgid "key_full_Shift" +msgstr "Maiuscole" + +msgid "key_full_Space" +msgstr "Spazio" + +msgid "key_full_Tab" +msgstr "Tabulazione" + +msgid "key_full_Up" +msgstr "Freccia Su" + +msgid "key_full_Win" +msgstr "Tasto Windows" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Menu" + +msgid "key_short_Backspace" +msgstr "Backspace" + +msgid "key_short_CapsLock" +msgstr "Bloc Maiusc" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Canc" + +msgid "key_short_Down" +msgstr "Giù" + +msgid "key_short_End" +msgstr "Fine" + +msgid "key_short_Enter" +msgstr "Invio" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Inizio" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Sinistra" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Bloc Num" + +msgid "key_short_PageDown" +msgstr "Pag Giù" + +msgid "key_short_PageUp" +msgstr "Pag Su" + +msgid "key_short_Pause" +msgstr "Pausa" + +msgid "key_short_PrintScreen" +msgstr "Stamp" + +msgid "key_short_Right" +msgstr "Destra" + +msgid "key_short_Scroll" +msgstr "Bloc Scorr" + +msgid "key_short_Shift" +msgstr "Maiusc" + +msgid "key_short_Space" +msgstr "Spazio" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Su" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "una di una riga" +msgstr[1] "%1 di %2 righe" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "una riga" +msgstr[1] "%1 righe" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.2/framework/nb.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/framework/nb.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/framework/nb.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,284 @@ +# Norwegian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2011-03-16 17:16+0100\n" +"Last-Translator: Stefan Andersson <stefan DOT andersson AT live DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "%1 does not fit %2." +msgstr "%1 passer ikke inn %2." + +msgid "%1 is not a color! %2" +msgstr "%1 er ikke en farge! %2" + +msgid "%1 is not a number." +msgstr "%1 er ikke et tall." + +msgid "%1 is not a string." +msgstr "%1 er ikke en streng." + +msgid "%1 is not an url." +msgstr "%1 er ikke en internettadresse (URL)." + +msgid "%1 is not in %2" +msgstr "%1 er ikke i %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 er ikke i området fra [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' er ikke en e-postadresse." + +msgid "Automatic" +msgstr "Automatisk" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Color Selector" +msgstr "fargevelger" + +msgid "Details" +msgstr "Detaljer" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Siste måned" + +msgid "Last year" +msgstr "Siste år" + +msgid "Next month" +msgstr "Neste måned" + +msgid "Next year" +msgstr "Neste år" + +msgid "OK" +msgstr "Ok" + +msgid "Open ColorSelector" +msgstr "Åpne fargevelger" + +msgid "Presets" +msgstr "Forhåndssatte" + +msgid "Preview (Old/New)" +msgstr "Forhåndsvisning (gammel/ny)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Nullstill kolonnebreddene" + +msgid "This field is required" +msgstr "Dette feltet er påkrevd" + +msgid "Visual" +msgstr "Visuell" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Apps" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "CapsLock" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Delete" + +msgid "key_full_Down" +msgstr "Ned" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Home" + +msgid "key_full_Insert" +msgstr "Insert" + +msgid "key_full_Left" +msgstr "Venstre" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "NumLock" + +msgid "key_full_PageDown" +msgstr "PageDown" + +msgid "key_full_PageUp" +msgstr "PageUp" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "PrintScreen" + +msgid "key_full_Right" +msgstr "Høyre" + +msgid "key_full_Scroll" +msgstr "Scroll" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Space" + +msgid "key_full_Tab" +msgstr "Tab" + +msgid "key_full_Up" +msgstr "Opp" + +msgid "key_full_Win" +msgstr "Win" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Apps" + +msgid "key_short_Backspace" +msgstr "BS" + +msgid "key_short_CapsLock" +msgstr "CapsLock" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Del" + +msgid "key_short_Down" +msgstr "Ned" + +msgid "key_short_End" +msgstr "End" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Home" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Venstre" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num" + +msgid "key_short_PageDown" +msgstr "PgDn" + +msgid "key_short_PageUp" +msgstr "PgUp" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "PrnScn" + +msgid "key_short_Right" +msgstr "Høyre" + +msgid "key_short_Scroll" +msgstr "Scroll" + +msgid "key_short_Shift" +msgstr "Shift" + +msgid "key_short_Space" +msgstr "Space" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Opp" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "En av en rad" +msgstr[1] "%1 av %2 rader" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "en rad" +msgstr[1] "%1 rader" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.2/framework/nl.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/framework/nl.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/framework/nl.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,283 @@ +# Dutch +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-26 23:34+0100\n" +"Last-Translator: Isaak Malik <isooik AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "%1 does not fit %2." +msgstr "%1 past niet %2." + +msgid "%1 is not a color! %2" +msgstr "%1 is geen kleur! %2" + +msgid "%1 is not a number." +msgstr "%1 is geen nummer." + +msgid "%1 is not a string." +msgstr "%1 is geen string." + +msgid "%1 is not an url." +msgstr "%1 is geen url." + +msgid "%1 is not in %2" +msgstr "%1 is niet in %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 is niet in het bereik van [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' is geen email adres." + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Cancel" +msgstr "Annuleer" + +msgid "Color Selector" +msgstr "Kleur-instelling" + +msgid "Details" +msgstr "Details" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Laatste maand" + +msgid "Last year" +msgstr "Laatste jaar" + +msgid "Next month" +msgstr "Volgende maand" + +msgid "Next year" +msgstr "Volgend jaar" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Open Kleurkiezer" + +msgid "Presets" +msgstr "Voorkeuren" + +msgid "Preview (Old/New)" +msgstr "Voorbeeld (Oud/Nieuw)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Kolombreedte herstellen" + +msgid "This field is required" +msgstr "Dit veld is verplicht" + +msgid "Visual" +msgstr "Visueel" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Contextmenu" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Verwijderen" + +msgid "key_full_Down" +msgstr "Pijl omlaag" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Positie 1" + +msgid "key_full_Insert" +msgstr "Invoegen" + +msgid "key_full_Left" +msgstr "Pijl links" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Num Lock" + +msgid "key_full_PageDown" +msgstr "Volgende pagina" + +msgid "key_full_PageUp" +msgstr "Vorige pagina" + +msgid "key_full_Pause" +msgstr "Pauze" + +msgid "key_full_PrintScreen" +msgstr "Schermafbeelding" + +msgid "key_full_Right" +msgstr "Pijl rechts" + +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Spatiebalk" + +msgid "key_full_Tab" +msgstr "Tabulator" + +msgid "key_full_Up" +msgstr "Pijl omhoog" + +msgid "key_full_Win" +msgstr "Windowstoets" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Apps" + +msgid "key_short_Backspace" +msgstr "Backspace" + +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Del" + +msgid "key_short_Down" +msgstr "Omlaag" + +msgid "key_short_End" +msgstr "End" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Home" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Links" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num Lock" + +msgid "key_short_PageDown" +msgstr "PgDn" + +msgid "key_short_PageUp" +msgstr "PgUp" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "PrtSc" + +msgid "key_short_Right" +msgstr "Rechts" + +msgid "key_short_Scroll" +msgstr "Scroll Lock" + +msgid "key_short_Shift" +msgstr "Shift" + +msgid "key_short_Space" +msgstr "Spatie" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Omhoog" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "Een van een rij" +msgstr[1] "%1 van %2 rijen" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "een rij" +msgstr[1] "%1 rijen" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.2/framework/pl.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.2/framework/pl.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.2/framework/pl.po 2012-10-30 10:03:20 UTC (rev 21796) @@ -0,0 +1,284 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-22 17:53+0100\n" +"Last-Translator: Thomas Herchenroeder <thron7 AT users DOT sourceforge DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "%1 does not fit %2." +msgstr "%1 nie pasuje do %2." + +msgid "%1 is not a color! %2" +msgstr "%1 nie jest kolorem! %2" + +msgid "%1 is not a number." +msgstr "%1 nie jest liczbą." + +msgid "%1 is not a string." +msgstr "%1 nie jest ciągiem znaków." + +msgid "%1 is not an url." +msgstr "%1 nie jest URL." + +msgid "%1 is not in %2" +msgstr "%1 nie jest w %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 nie leży w przedziale [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' nie jest adresem e-mail." + +msgid "Automatic" +msgstr "Automatycznie" + +msgid "Cancel" +msgstr "Anuluj" + +msgid "Color Selector" +msgstr "Wybór kolorów" + +msgid "Details" +msgstr "Szczegóły" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "hex" + +msgid "Last month" +msgstr "Poprzedni miesiąc" + +msgid "Last year" +msgstr "Poprzedni rok" + +msgid "Next month" +msgstr "Następny miesiąc" + +msgid "Next year" +msgstr "Następny rok" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Otwórz wybór kolorów" + +msgid "Presets" +msgstr "Ustawienia wstępne" + +msgid "Preview (Old/New)" +msgstr "Podgląd (stary/nowy)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Zresetuj szerokość kolumny" + +msgid "This field is required" +msgstr "To pole jest obowiązkowe" + +msgid "Visual" +msgstr "Wizualny" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Menu kontekstowe" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "key_full_Control_Mac" + +msgid "key_full_Delete" +msgstr "Delete" + +msgid "key_full_Down" +msgstr "Strzałka w dół" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Home" + +msgid "key_full_Insert" +msgstr "Insert" + +msgid "key_full_Left" +msgstr "Strzałka w lewo" + +msgid "key_full_Meta" +msgstr "Klawisz meta" + +msgid "key_full_NumLock" +msgstr "Num Lock" + +msgid "key_full_PageDown" +msgstr "Page Down" + +msgid "key_full_PageUp" +msgstr "Page Up" + +msgid "key_full_Pause" +msgstr "Break" + +msgid "key_full_PrintScreen" +msgstr "Print Screen" + +msgid "key_full_Right" +msgstr "Strzałka w prawo" + +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +msgid "key_full... [truncated message content] |
From: <spa...@us...> - 2012-10-24 11:59:45
|
Revision: 21795 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21795&view=rev Author: spackers Date: 2012-10-24 11:59:33 +0000 (Wed, 24 Oct 2012) Log Message: ----------- fixes for decorator insets to support Qx2.0, css for window appearance Modified Paths: -------------- trunk/qooxdoo-contrib/Aristo/branches/v1.1/Manifest.json trunk/qooxdoo-contrib/Aristo/branches/v1.1/config.json trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/Manifest.json trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/config.json trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/Application.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/CalcWindow.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/ColorWindow.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Appearance.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Color.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Decoration.js Property Changed: ---------------- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/ Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/Manifest.json 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/Manifest.json 2012-10-24 11:59:33 UTC (rev 21795) @@ -30,7 +30,7 @@ ], "version" : "trunk", - "qooxdoo-versions": [ "1.4", "1.5", "1.6", "1.6-pre", "2.0" ] + "qooxdoo-versions": [ "2.0" ] }, "provides" : Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/config.json =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/config.json 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/config.json 2012-10-24 11:59:33 UTC (rev 21795) @@ -29,7 +29,7 @@ { "APPLICATION" : "aristo", "APPLICATION_MAIN_CLASS" : "${APPLICATION}.demo.Demo", - "QOOXDOO_PATH" : "../../qooxdoo/1.3", + "QOOXDOO_PATH" : "../../qooxdoo/2.0", "QXTHEME" : "qx.theme.Modern", "API_EXCLUDE" : ["qx.test.*", "aristo.demo.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Property changes on: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default ___________________________________________________________________ Modified: svn:ignore - local.json + local.json build cache Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/Manifest.json 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/Manifest.json 2012-10-24 11:59:33 UTC (rev 21795) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.2"] + "qooxdoo-versions": ["2.0"] }, "provides" : Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/config.json =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/config.json 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/config.json 2012-10-24 11:59:33 UTC (rev 21795) @@ -34,12 +34,14 @@ "let" : { "APPLICATION" : "aristo.demo", - "XQOOXDOO_PATH" : "../../../../qooxdoo/1.6", - "QOOXDOO_PATH" : "../../../../../../../../Local/WebContent/public/grasshopper/qooxdoo-trunk", + "QOOXDOO_PATH" : "../../../../qooxdoo/2.0", + "XQOOXDOO_PATH" : "../../../../../../../../Local/WebContent/public/grasshopper/qooxdoo-trunk", + "XQOOXDOO_PATH" : "../../../../../../../../../../../os/qooxdoo-1.6-sdk", + "XQOOXDOO_PATH" : "../../../../../../../../../../../os/qooxdoo-2.0.2-sdk", "QXTHEME" : "aristo.Aristo", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], - "CACHE" : "${TMPDIR}/cache", + "CACHE" : "./cache", "ROOT" : "." }, Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/Application.js =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/Application.js 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/Application.js 2012-10-24 11:59:33 UTC (rev 21795) @@ -431,6 +431,8 @@ var colorWindow = this.colorWindow = new aristo.demo.ColorWindow(); colorWindow.addListener("changeActive", this.resetShowcase, this); + this.calcWindow.open(); + this.colorWindow.open(); if (selWidgetButton) widgetButton.setSelection([selWidgetButton]); Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/CalcWindow.js =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/CalcWindow.js 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/CalcWindow.js 2012-10-24 11:59:33 UTC (rev 21795) @@ -37,7 +37,7 @@ this.addListenerOnce("appear", function(e) { this.add(this.createCalculator(), { flex : 1 }); - this.center(); + this.moveTo(50, 150); }, this); }, Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/ColorWindow.js =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/ColorWindow.js 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/class/aristo/demo/ColorWindow.js 2012-10-24 11:59:33 UTC (rev 21795) @@ -48,7 +48,7 @@ this.addListenerOnce("appear", function(e) { this.add(box, {flex: 1}); - this.center(); + this.moveTo(350, 150); }, this); } } Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Appearance.js =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Appearance.js 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Appearance.js 2012-10-24 11:59:33 UTC (rev 21795) @@ -145,13 +145,11 @@ decorator = "button"; textColor = undefined; } - var useCSS = qx.core.Environment - .get("css.boxshadow"); + var useCSS = qx.core.Environment.get("css.boxshadow"); if (useCSS) decorator += "-css"; - if (states.focused - || (states.invalid && !states.disabled)) { + if (states.focused || (states.invalid && !states.disabled)) { shadow = useCSS ? "shadow-css" : "shadow"; } @@ -696,9 +694,9 @@ "window" : { style : function(states) { + var useCSS = qx.core.Environment.get("css.boxshadow"); return { - shadow : states.active ? "shadow-window-active" - : "shadow-window-inactive", + shadow : (states.active ? "shadow-window-active" : "shadow-window-inactive") + (useCSS ? "-css" : ""), contentPadding : [ 10, 10, 10, 10 ] }; } Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Color.js =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Color.js 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Color.js 2012-10-24 11:59:33 UTC (rev 21795) @@ -8,115 +8,113 @@ EPL: http://www.eclipse.org/org/documents/epl-v10.php Authors: - * Guilherme R. Aiolfi (guilhermeaiolfi) - * John Spackman (joh...@ze...) + * Guilherme R. Aiolfi (guilhermeaiolfi) + * John Spackman (joh...@ze...) ====================================================================== This class contains code and resources based on the following work: - * Aristo + * Aristo http://github.com/280north/aristo License: http://creativecommons.org/licenses/by-sa/3.0/us/ Authors: - * 280 North, Inc., http://280north.com/ - * Sofa, http://madebysofa.com/ + * 280 North, Inc., http://280north.com/ + * Sofa, http://madebysofa.com/ -************************************************************************ */ + ************************************************************************ */ /** * Aristo color theme */ -qx.Theme.define("aristo.theme.Color", -{ - colors : - { - "text-label": "#333333", - "text-disabled": "#A7A7A7", - "text-hovered": "#4f4f4f", +qx.Theme.define("aristo.theme.Color", { + colors : { + "text-label" : "#333333", + "text-disabled" : "#A7A7A7", + "text-hovered" : "#4f4f4f", "text-placeholder" : "#A7A7A7", - "text-selected": "#FFFFFF", + "text-selected" : "#FFFFFF", "text-input" : "#4f4f4f", "text-light" : "#a4a4a4", "text-title" : "#2a4d60", "text-active" : "#4f4f4f", "text-inactive" : "#4f4f4f", "text-readonly" : "#4f4f4f", - + "invalid" : "#c82c2c", + "border-light" : "#d1d1d1", + "border-main" : "#949494", + "border-input" : "#d1d1d1",// "#949494", + "border-separator" : "#808080", - "border-light": "#d1d1d1", - "border-main" : "#949494", - "border-input" : "#d1d1d1",//"#949494", - "border-separator" : "#808080", - - "background-application": "#FFFFFF", + "background-application" : "#FFFFFF", "background-light" : "#EEEEEE", - "background-item-selected": "#5f83b9", - "background-splitpane" : "#AFAFAF", - "background-toolbar" : "#d4d4d4", - "background-dark" : "#949494", - "background-menu" : "#fbfbfb", - "background-medium" : "#c2c2c2", - "background-tip" : "#b8def5", - "background-pane" : "#F3F3F3", - "background-odd" : "#E4E4E4", - "background-selected-dark" : "#333333", + "background-item-selected" : "#5f83b9", + "background-splitpane" : "#AFAFAF", + "background-toolbar" : "#d4d4d4", + "background-dark" : "#949494", + "background-menu" : "#fbfbfb", + "background-medium" : "#c2c2c2", + "background-tip" : "#b8def5", + "background-pane" : "#F3F3F3", + "background-odd" : "#E4E4E4", + "background-selected-dark" : "#333333", + + "button-gradient-start" : "#ededed", + "button-gradient-end" : "#c4c4c4", + "button-active-gradient-start" : "#b7def4", + "button-active-gradient-end" : "#83b0ca", + "button-focused-shadow" : "#a1cae2", - - "button-gradient-start": "#ededed", - "button-gradient-end": "#c4c4c4", - "button-active-gradient-start": "#b7def4", - "button-active-gradient-end": "#83b0ca", - "button-focused-shadow": "#a1cae2", - - - /* - --------------------------------------------------------------------------- - TABLE COLORS - --------------------------------------------------------------------------- - */ + "window-shadow": "#7f7f7f", - // equal to "background-pane" - "table-pane" : "#F3F3F3", + /* + * --------------------------------------------------------------------------- + * TABLE COLORS + * --------------------------------------------------------------------------- + */ - // own table colors - // "table-row-background-selected" and "table-row-background-focused-selected" - // are inspired by the colors of the selection decorator - "table-focus-indicator" : "#0880EF", - "table-row-background-focused-selected" : "#5f83b9", - "table-row-background-focused" : "#80B4EF", - "table-row-background-selected" : "#5f83b9", + // equal to "background-pane" + "table-pane" : "#F3F3F3", - "table-row-background-even" : "#F7FCFE", //"#F3F3F3", - "table-row-background-odd" : "#ebf8ff", //"#E4E4E4", + // own table colors + // "table-row-background-selected" and + // "table-row-background-focused-selected" + // are inspired by the colors of the selection decorator + "table-focus-indicator" : "#0880EF", + "table-row-background-focused-selected" : "#5f83b9", + "table-row-background-focused" : "#80B4EF", + "table-row-background-selected" : "#5f83b9", - "table-row-selected" : "#fffefe", - "table-row" : "#1a1a1a", + "table-row-background-even" : "#F7FCFE", // "#F3F3F3", + "table-row-background-odd" : "#ebf8ff", // "#E4E4E4", - // equal to "border-collumn" - "table-row-line" : "#CCCCCC", - "table-column-line" : "#CCCCCC", - - /* - --------------------------------------------------------------------------- - PROGRESSIVE TABLE COLORS - --------------------------------------------------------------------------- - */ + "table-row-selected" : "#fffefe", + "table-row" : "#1a1a1a", - "progressive-table-header" : "#AAAAAA", + // equal to "border-collumn" + "table-row-line" : "#CCCCCC", + "table-column-line" : "#CCCCCC", - "progressive-table-row-background-even" : "#F4F4F4", - "progressive-table-row-background-odd" : "#E4E4E4", + /* + * --------------------------------------------------------------------------- + * PROGRESSIVE TABLE COLORS + * --------------------------------------------------------------------------- + */ - "progressive-progressbar-background" : "gray", - "progressive-progressbar-indicator-done" : "#CCCCCC", - "progressive-progressbar-indicator-undone" : "white", - "progressive-progressbar-percent-background" : "gray", - "progressive-progressbar-percent-text" : "white" - } + "progressive-table-header" : "#AAAAAA", + + "progressive-table-row-background-even" : "#F4F4F4", + "progressive-table-row-background-odd" : "#E4E4E4", + + "progressive-progressbar-background" : "gray", + "progressive-progressbar-indicator-done" : "#CCCCCC", + "progressive-progressbar-indicator-undone" : "white", + "progressive-progressbar-percent-background" : "gray", + "progressive-progressbar-percent-text" : "white" + } }); Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Decoration.js =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Decoration.js 2012-10-24 09:09:32 UTC (rev 21794) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Decoration.js 2012-10-24 11:59:33 UTC (rev 21795) @@ -191,19 +191,51 @@ style : { baseImage : "aristo/decoration/shadow/shadow-window.png", - insets : [ 6, 8, 8, 6 ] + insets : [ -4, 14, 16, -4 ] } }, + "shadow-window-inactive-css" : { + decorator : [ qx.ui.decoration.MSingleBorder, + qx.ui.decoration.MBorderRadius, + qx.ui.decoration.MBoxShadow ], + + style : { + width : 0, + color : "window-shadow", + radius : 2, + shadowLength : 1, + shadowBlurRadius : 6, + shadowSpreadRadius: 0, + shadowColor : "window-shadow" + } + }, + "shadow-window-active" : { decorator : qx.ui.decoration.Grid, style : { baseImage : "aristo/decoration/shadow/shadow-window-active.png", - insets : [ 8, 10, 10, 8 ] + insets : [ -6, 22, 24, -6 ] } }, + "shadow-window-active-css" : { + decorator : [ qx.ui.decoration.MSingleBorder, + qx.ui.decoration.MBorderRadius, + qx.ui.decoration.MBoxShadow ], + + style : { + width : 0, + color : "window-shadow", + radius : 2, + shadowLength : 2, + shadowBlurRadius : 10, + shadowSpreadRadius: 2, + shadowColor : "window-shadow" + } + }, + "red-shadow" : { decorator : qx.ui.decoration.Grid, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spa...@us...> - 2012-10-24 09:09:43
|
Revision: 21794 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21794&view=rev Author: spackers Date: 2012-10-24 09:09:32 +0000 (Wed, 24 Oct 2012) Log Message: ----------- cleanup build output Added Paths: ----------- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spa...@us...> - 2012-10-24 09:08:37
|
Revision: 21793 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21793&view=rev Author: spackers Date: 2012-10-24 09:08:26 +0000 (Wed, 24 Oct 2012) Log Message: ----------- cleanup build output Removed Paths: ------------- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spa...@us...> - 2012-10-24 08:44:11
|
Revision: 21792 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21792&view=rev Author: spackers Date: 2012-10-24 08:43:56 +0000 (Wed, 24 Oct 2012) Log Message: ----------- minor tweaks to style, including slimming down some aspects of the theme (eg option for thin scrollbars); working towards qx-2.0 release (inset compatibility) Modified Paths: -------------- trunk/qooxdoo-contrib/Aristo/branches/v1.1/Manifest.json trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/config.json trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Appearance.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Color.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/class/aristo/theme/Decoration.js Added Paths: ----------- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.04dec7c6d60f.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.0a6c2990ecea.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.1176fe15c587.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.13b9e6de3f6a.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.1c05d5730280.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.1ea3cc12ef51.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.206076205243.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.21002b3cf675.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.29f185ba19a8.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.348ffd9c96ff.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.368dd534987c.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.374f0dc8c138.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.39f96edf0add.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.3b576b90c2c2.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.3c2ccda898d2.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.4267c4afcef6.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.426a4765d133.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.45dc7bec4af7.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.4769868d95ef.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.5791c245919f.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.6d1d381739c8.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.6e4bde98edf8.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.6eb477b86a39.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.6f6c27beea55.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.7a3765465093.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.8013914df40b.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.80cc0f8fbaee.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.87214b937030.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.8815d59fb135.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.8ac30fca9114.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.984b55c40d7b.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.a6098a032c16.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.ae75f0713d5a.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.b84dd344dfd5.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.bc34ba7ef20b.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.bdfa5dfb3e2b.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.bff01d80fe6a.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.c00d20639087.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.c7cbecb68a48.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.c8b375e6bf01.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.d8379a539cb8.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.e48578f23743.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.ebd1a13d19ed.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.f0366a043c64.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.f6d9f7aab324.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.fdeef4fa208e.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.js trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/ trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-button-b.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-button-focused-b.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-button-focused-l.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-button-focused-r.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-button-focused-t.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-button-l.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-button-r.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-button-t.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-horizontal.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-vertical-disabled.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-bg-vertical.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-button-bg-horizontal-c.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-button-bg-horizontal-l.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-button-bg-horizontal-r.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-button-bg-horizontal.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-button-bg-vertical-b.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-button-bg-vertical-c.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-button-bg-vertical-t.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/old/scrollbar-button-bg-vertical.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/scrollbar/tmp/ trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/ trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/close-active-hovered.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/close-active.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/close-inactive.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/maximize-active-hovered.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/maximize-active.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/maximize-inactive.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/minimize-active-hovered.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/minimize-active.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/minimize-inactive.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/restore-active-hovered.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/restore-active.png trunk/qooxdoo-contrib/Aristo/branches/v1.1/source/resource/aristo/decoration/window/old/restore-inactive.png Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/Manifest.json 2012-10-22 12:41:28 UTC (rev 21791) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/Manifest.json 2012-10-24 08:43:56 UTC (rev 21792) @@ -30,7 +30,7 @@ ], "version" : "trunk", - "qooxdoo-versions": [ "1.4", "1.5", "1.6", "1.6-pre" ] + "qooxdoo-versions": [ "1.4", "1.5", "1.6", "1.6-pre", "2.0" ] }, "provides" : Modified: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/config.json =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/config.json 2012-10-22 12:41:28 UTC (rev 21791) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/config.json 2012-10-24 08:43:56 UTC (rev 21792) @@ -34,7 +34,8 @@ "let" : { "APPLICATION" : "aristo.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/1.6", + "XQOOXDOO_PATH" : "../../../../qooxdoo/1.6", + "QOOXDOO_PATH" : "../../../../../../../../Local/WebContent/public/grasshopper/qooxdoo-trunk", "QXTHEME" : "aristo.Aristo", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Added: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.04dec7c6d60f.js =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.04dec7c6d60f.js (rev 0) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.04dec7c6d60f.js 2012-10-24 08:43:56 UTC (rev 21792) @@ -0,0 +1,1185 @@ +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Sebastian Werner (wpbasti) + * Fabian Jakobs (fjakobs) + +************************************************************************ */ + +/** + * Each object, which should be managed by a {@link RadioGroup} have to + * implement this interface. + */ +qx.Interface.define("qx.ui.form.IRadioItem", +{ + + /* + ***************************************************************************** + EVENTS + ***************************************************************************** + */ + + events : + { + /** Fired when the item was checked or unchecked */ + "changeValue" : "qx.event.type.Data" + }, + + + + /* + ***************************************************************************** + MEMBERS + ***************************************************************************** + */ + + members : + { + /** + * Set whether the item is checked + * + * @param value {Boolean} whether the item should be checked + */ + setValue : function(value) {}, + + + /** + * Get whether the item is checked + * + * @return {Boolean} whether the item it checked + */ + getValue : function() {}, + + + /** + * Set the radiogroup, which manages this item + * + * @param value {qx.ui.form.RadioGroup} The radiogroup, which should + * manage the item. + */ + setGroup : function(value) { + this.assertInstance(value, qx.ui.form.RadioGroup); + }, + + + /** + * Get the radiogroup, which manages this item + * + * @return {qx.ui.form.RadioGroup} The radiogroup, which manages the item. + */ + getGroup : function() {} + } +}); +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Sebastian Werner (wpbasti) + * Andreas Ecker (ecker) + * Christian Hagendorn (chris_schmidt) + * Martin Wittemann (martinwittemann) + +************************************************************************ */ + +/** + * The radio group handles a collection of items from which only one item + * can be selected. Selection another item will deselect the previously selected + * item. + * + * This class is e.g. used to create radio groups or {@link qx.ui.form.RadioButton} + * or {@link qx.ui.toolbar.RadioButton} instances. + * + * We also offer a widget for the same purpose which uses this class. So if + * you like to act with a widget instead of a pure logic coupling of the + * widgets, take a look at the {@link qx.ui.form.RadioButtonGroup} widget. + */ +qx.Class.define("qx.ui.form.RadioGroup", +{ + extend : qx.core.Object, + implement : [ + qx.ui.core.ISingleSelection, + qx.ui.form.IForm, + qx.ui.form.IModelSelection + ], + include : [ + qx.ui.core.MSingleSelectionHandling, + qx.ui.form.MModelSelection + ], + + + /* + ***************************************************************************** + CONSTRUCTOR + ***************************************************************************** + */ + + + /** + * @param varargs {qx.core.Object} A variable number of items, which are + * initially added to the radio group, the first item will be selected. + */ + construct : function(varargs) + { + this.base(arguments); + + // create item array + this.__items = []; + + // add listener before call add!!! + this.addListener("changeSelection", this.__onChangeSelection, this); + + if (varargs != null) { + this.add.apply(this, arguments); + } + }, + + + /* + ***************************************************************************** + PROPERTIES + ***************************************************************************** + */ + + + properties : + { + /** + * Whether the radio group is enabled + */ + enabled : + { + check : "Boolean", + apply : "_applyEnabled", + event : "changeEnabled", + init: true + }, + + /** + * Whether the selection should wrap around. This means that the successor of + * the last item is the first item. + */ + wrap : + { + check : "Boolean", + init: true + }, + + /** + * If is set to <code>true</code> the selection could be empty, + * otherwise is always one <code>RadioButton</code> selected. + */ + allowEmptySelection : + { + check : "Boolean", + init : false, + apply : "_applyAllowEmptySelection" + }, + + /** + * Flag signaling if the group at all is valid. All children will have the + * same state. + */ + valid : { + check : "Boolean", + init : true, + apply : "_applyValid", + event : "changeValid" + }, + + /** + * Flag signaling if the group is required. + */ + required : { + check : "Boolean", + init : false, + event : "changeRequired" + }, + + /** + * Message which is shown in an invalid tooltip. + */ + invalidMessage : { + check : "String", + init: "", + event : "changeInvalidMessage", + apply : "_applyInvalidMessage" + }, + + + /** + * Message which is shown in an invalid tooltip if the {@link #required} is + * set to true. + */ + requiredInvalidMessage : { + check : "String", + nullable : true, + event : "changeInvalidMessage" + } + }, + + + /* + ***************************************************************************** + MEMBERS + ***************************************************************************** + */ + + + members : + { + /** {qx.ui.form.IRadioItem[]} The items of the radio group */ + __items : null, + + + /* + --------------------------------------------------------------------------- + UTILITIES + --------------------------------------------------------------------------- + */ + + + /** + * Get all managed items + * + * @return {qx.ui.form.IRadioItem[]} All managed items. + */ + getItems : function() { + return this.__items; + }, + + + /* + --------------------------------------------------------------------------- + REGISTRY + --------------------------------------------------------------------------- + */ + + + /** + * Add the passed items to the radio group. + * + * @param varargs {qx.ui.form.IRadioItem} A variable number of items to add. + */ + add : function(varargs) + { + var items = this.__items; + var item; + + for (var i=0, l=arguments.length; i<l; i++) + { + item = arguments[i]; + + if (qx.lang.Array.contains(items, item)) { + continue; + } + + // Register listeners + item.addListener("changeValue", this._onItemChangeChecked, this); + + // Push RadioButton to array + items.push(item); + + // Inform radio button about new group + item.setGroup(this); + + // Need to update internal value? + if (item.getValue()) { + this.setSelection([item]); + } + } + + // Select first item when only one is registered + if (!this.isAllowEmptySelection() && items.length > 0 && !this.getSelection()[0]) { + this.setSelection([items[0]]); + } + }, + + /** + * Remove an item from the radio group. + * + * @param item {qx.ui.form.IRadioItem} The item to remove. + */ + remove : function(item) + { + var items = this.__items; + if (qx.lang.Array.contains(items, item)) + { + // Remove RadioButton from array + qx.lang.Array.remove(items, item); + + // Inform radio button about new group + if (item.getGroup() === this) { + item.resetGroup(); + } + + // Deregister listeners + item.removeListener("changeValue", this._onItemChangeChecked, this); + + // if the radio was checked, set internal selection to null + if (item.getValue()) { + this.resetSelection(); + } + } + }, + + + /** + * Returns an array containing the group's items. + * + * @return {qx.ui.form.IRadioItem[]} The item array + */ + getChildren : function() + { + return this.__items; + }, + + + /* + --------------------------------------------------------------------------- + LISTENER FOR ITEM CHANGES + --------------------------------------------------------------------------- + */ + + + /** + * Event listener for <code>changeValue</code> event of every managed item. + * + * @param e {qx.event.type.Data} Data event + */ + _onItemChangeChecked : function(e) + { + var item = e.getTarget(); + if (item.getValue()) { + this.setSelection([item]); + } else if (this.getSelection()[0] == item) { + this.resetSelection(); + } + }, + + + /* + --------------------------------------------------------------------------- + APPLY ROUTINES + --------------------------------------------------------------------------- + */ + // property apply + _applyInvalidMessage : function(value, old) { + for (var i = 0; i < this.__items.length; i++) { + this.__items[i].setInvalidMessage(value); + } + }, + + // property apply + _applyValid: function(value, old) { + for (var i = 0; i < this.__items.length; i++) { + this.__items[i].setValid(value); + } + }, + + // property apply + _applyEnabled : function(value, old) + { + var items = this.__items; + if (value == null) + { + for (var i=0, l=items.length; i<l; i++) { + items[i].resetEnabled(); + } + } + else + { + for (var i=0, l=items.length; i<l; i++) { + items[i].setEnabled(value); + } + } + }, + + // property apply + _applyAllowEmptySelection : function(value, old) + { + if (!value && this.isSelectionEmpty()) { + this.resetSelection(); + } + }, + + + /* + --------------------------------------------------------------------------- + SELECTION + --------------------------------------------------------------------------- + */ + + + /** + * Select the item following the given item. + */ + selectNext : function() + { + var item = this.getSelection()[0]; + var items = this.__items; + var index = items.indexOf(item); + if (index == -1) { + return; + } + + var i = 0; + var length = items.length; + + // Find next enabled item + if (this.getWrap()) { + index = (index + 1) % length; + } else { + index = Math.min(index + 1, length - 1); + } + + while (i < length && !items[index].getEnabled()) + { + index = (index + 1) % length; + i++; + } + + this.setSelection([items[index]]); + }, + + + /** + * Select the item previous the given item. + */ + selectPrevious : function() + { + var item = this.getSelection()[0]; + var items = this.__items; + var index = items.indexOf(item); + if (index == -1) { + return; + } + + var i = 0; + var length = items.length; + + // Find previous enabled item + if (this.getWrap()) { + index = (index - 1 + length) % length; + } else { + index = Math.max(index - 1, 0); + } + + while (i < length && !items[index].getEnabled()) + { + index = (index - 1 + length) % length; + i++; + } + + this.setSelection([items[index]]); + }, + + + /* + --------------------------------------------------------------------------- + HELPER METHODS FOR SELECTION API + --------------------------------------------------------------------------- + */ + + + /** + * Returns the items for the selection. + * + * @return {qx.ui.form.IRadioItem[]} Items to select. + */ + _getItems : function() { + return this.getItems(); + }, + + /** + * Returns if the selection could be empty or not. + * + * @return {Boolean} <code>true</code> If selection could be empty, + * <code>false</code> otherwise. + */ + _isAllowEmptySelection: function() { + return this.isAllowEmptySelection(); + }, + + + /** + * Returns whether the item is selectable. In opposite to the default + * implementation (which checks for visible items) every radio button + * which is part of the group is selected even if it is currently not visible. + * + * @param item {qx.ui.form.IRadioItem} The item to check if its selectable. + * @return {Boolean} <code>true</code> if the item is part of the radio group + * <code>false</code> otherwise. + */ + _isItemSelectable : function(item) { + return this.__items.indexOf(item) != -1; + }, + + + /** + * Event handler for <code>changeSelection</code>. + * + * @param e {qx.event.type.Data} Data event. + */ + __onChangeSelection : function(e) + { + var value = e.getData()[0]; + var old = e.getOldData()[0]; + + if (old) { + old.setValue(false); + } + + if (value) { + value.setValue(true); + } + } + }, + + + /* + ***************************************************************************** + DESTRUCTOR + ***************************************************************************** + */ + + + destruct : function() { + this._disposeArray("__items"); + } +}); +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Martin Wittemann (martinwittemann) + +************************************************************************ */ + +/** + * Form interface for all form widgets which have boolean as their primary + * data type like a checkbox. + */ +qx.Interface.define("qx.ui.form.IBooleanForm", +{ + /* + ***************************************************************************** + EVENTS + ***************************************************************************** + */ + + events : + { + /** Fired when the value was modified */ + "changeValue" : "qx.event.type.Data" + }, + + + + /* + ***************************************************************************** + MEMBERS + ***************************************************************************** + */ + + members : + { + /* + --------------------------------------------------------------------------- + VALUE PROPERTY + --------------------------------------------------------------------------- + */ + + /** + * Sets the element's value. + * + * @param value {Boolean|null} The new value of the element. + */ + setValue : function(value) { + return arguments.length == 1; + }, + + + /** + * Resets the element's value to its initial value. + */ + resetValue : function() {}, + + + /** + * The element's user set value. + * + * @return {Boolean|null} The value. + */ + getValue : function() {} + } +}); +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Martin Wittemann (martinwittemann) + +************************************************************************ */ + +/** + * A toggle Button widget + * + * If the user presses the button by clicking on it pressing the enter or + * space key, the button toggles between the pressed an not pressed states. + * There is no execute event, only a {@link qx.ui.form.ToggleButton#changeValue} + * event. + */ +qx.Class.define("qx.ui.form.ToggleButton", +{ + extend : qx.ui.basic.Atom, + include : [ + qx.ui.core.MExecutable + ], + implement : [ + qx.ui.form.IBooleanForm, + qx.ui.form.IExecutable, + qx.ui.form.IRadioItem + ], + + + + /* + ***************************************************************************** + CONSTRUCTOR + ***************************************************************************** + */ + + /** + * Creates a ToggleButton. + * + * @param label {String} The text on the button. + * @param icon {String} An URI to the icon of the button. + */ + construct : function(label, icon) + { + this.base(arguments, label, icon); + + // register mouse events + this.addListener("mouseover", this._onMouseOver); + this.addListener("mouseout", this._onMouseOut); + this.addListener("mousedown", this._onMouseDown); + this.addListener("mouseup", this._onMouseUp); + + // register keyboard events + this.addListener("keydown", this._onKeyDown); + this.addListener("keyup", this._onKeyUp); + + // register execute event + this.addListener("execute", this._onExecute, this); + + }, + + + + /* + ***************************************************************************** + PROPERTIES + ***************************************************************************** + */ + + properties: + { + // overridden + appearance: + { + refine: true, + init: "button" + }, + + // overridden + focusable : + { + refine : true, + init : true + }, + + /** The value of the widget. True, if the widget is checked. */ + value : + { + check : "Boolean", + nullable : true, + event : "changeValue", + apply : "_applyValue", + init : false + }, + + /** The assigned qx.ui.form.RadioGroup which handles the switching between registered buttons. */ + group : + { + check : "qx.ui.form.RadioGroup", + nullable : true, + apply : "_applyGroup" + }, + + /** + * Whether the button has a third state. Use this for tri-state checkboxes. + * + * When enabled, the value null of the property value stands for "undetermined", + * while true is mapped to "enabled" and false to "disabled" as usual. Note + * that the value property is set to false initially. + * + */ + triState : + { + check : "Boolean", + apply : "_applyTriState", + nullable : true, + init : null + } + }, + + + + + /* + ***************************************************************************** + MEMBERS + ***************************************************************************** + */ + + members : + { + /** The assigned {@link qx.ui.form.RadioGroup} which handles the switching between registered buttons */ + _applyGroup : function(value, old) + { + if (old) { + old.remove(this); + } + + if (value) { + value.add(this); + } + }, + + + /** + * Changes the state of the button dependent on the checked value. + * + * @param value {Boolean} Current value + * @param old {Boolean} Previous value + */ + _applyValue : function(value, old) { + value ? this.addState("checked") : this.removeState("checked"); + + if (this.isTriState()) { + if (value === null) { + this.addState("undetermined"); + } else if (old === null) { + this.removeState("undetermined"); + } + } + }, + + /** + * Apply value property when triState property is modified. + * + * @param value {Boolean} Current value + * @param old {Boolean} Previous value + */ + _applyTriState : function(value, old) { + this._applyValue(this.getValue()); + }, + + + /** + * Handler for the execute event. + * + * @param e {qx.event.type.Event} The execute event. + */ + _onExecute : function(e) { + this.toggleValue(); + }, + + + /** + * Listener method for "mouseover" event. + * <ul> + * <li>Adds state "hovered"</li> + * <li>Removes "abandoned" and adds "pressed" state (if "abandoned" state is set)</li> + * </ul> + * + * @param e {Event} Mouse event + * @return {void} + */ + _onMouseOver : function(e) + { + if (e.getTarget() !== this) { + return; + } + + this.addState("hovered"); + + if (this.hasState("abandoned")) + { + this.removeState("abandoned"); + this.addState("pressed"); + } + }, + + + /** + * Listener method for "mouseout" event. + * <ul> + * <li>Removes "hovered" state</li> + * <li>Adds "abandoned" state (if "pressed" state is set)</li> + * <li>Removes "pressed" state (if "pressed" state is set and button is not checked) + * </ul> + * + * @param e {Event} Mouse event + * @return {void} + */ + _onMouseOut : function(e) + { + if (e.getTarget() !== this) { + return; + } + + this.removeState("hovered"); + + if (this.hasState("pressed")) + { + if (!this.getValue()) { + this.removeState("pressed"); + } + + this.addState("abandoned"); + } + }, + + + /** + * Listener method for "mousedown" event. + * <ul> + * <li>Activates capturing</li> + * <li>Removes "abandoned" state</li> + * <li>Adds "pressed" state</li> + * </ul> + * + * @param e {Event} Mouse event + * @return {void} + */ + _onMouseDown : function(e) + { + if (!e.isLeftPressed()) { + return; + } + + // Activate capturing if the button get a mouseout while + // the button is pressed. + this.capture(); + + this.removeState("abandoned"); + this.addState("pressed"); + e.stopPropagation(); + }, + + + /** + * Listener method for "mouseup" event. + * <ul> + * <li>Releases capturing</li> + * <li>Removes "pressed" state (if not "abandoned" state is set and "pressed" state is set)</li> + * <li>Removes "abandoned" state (if set)</li> + * <li>Toggles {@link #value} (if state "abandoned" is not set and state "pressed" is set)</li> + * </ul> + * + * @param e {Event} Mouse event + * @return {void} + */ + _onMouseUp : function(e) + { + this.releaseCapture(); + + if (this.hasState("abandoned")) { + this.removeState("abandoned"); + } else if (this.hasState("pressed")) { + this.execute(); + } + + this.removeState("pressed"); + e.stopPropagation(); + }, + + + /** + * Listener method for "keydown" event.<br/> + * Removes "abandoned" and adds "pressed" state + * for the keys "Enter" or "Space" + * + * @param e {Event} Key event + * @return {void} + */ + _onKeyDown : function(e) + { + switch(e.getKeyIdentifier()) + { + case "Enter": + case "Space": + this.removeState("abandoned"); + this.addState("pressed"); + + e.stopPropagation(); + } + }, + + + /** + * Listener method for "keyup" event.<br/> + * Removes "abandoned" and "pressed" state (if "pressed" state is set) + * for the keys "Enter" or "Space". It also toggles the {@link #value} property. + * + * @param e {Event} Key event + * @return {void} + */ + _onKeyUp : function(e) + { + if (!this.hasState("pressed")) { + return; + } + + switch(e.getKeyIdentifier()) + { + case "Enter": + case "Space": + this.removeState("abandoned"); + this.execute(); + + this.removeState("pressed"); + e.stopPropagation(); + } + } + } +}); +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2009 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Fabian Jakobs (fjakobs) + +************************************************************************ */ + +/** + * The HoverButton is an {@link qx.ui.basic.Atom}, which fires repeatedly + * execute events while the mouse is over the widget. + * + * The rate at which the execute event is fired accelerates is the mouse keeps + * inside of the widget. The initial delay and the interval time can be set using + * the properties {@link #firstInterval} and {@link #interval}. The + * {@link #execute} events will be fired in a shorter amount of time if the mouse + * remains over the widget, until the min {@link #minTimer} is reached. + * The {@link #timerDecrease} property sets the amount of milliseconds which will + * decreased after every firing. + * + * *Example* + * + * Here is a little example of how to use the widget. + * + * <pre class='javascript'> + * var button = new qx.ui.form.HoverButton("Hello World"); + * + * button.addListener("execute", function(e) { + * alert("Button is hovered"); + * }, this); + * + * this.getRoot.add(button); + * </pre> + * + * This example creates a button with the label "Hello World" and attaches an + * event listener to the {@link #execute} event. + * + * *External Documentation* + * + * <a href='http://manual.qooxdoo.org/${qxversion}/pages/widget/hoverbutton.html' target='_blank'> + * Documentation of this widget in the qooxdoo manual.</a> + */ +qx.Class.define("qx.ui.form.HoverButton", +{ + extend : qx.ui.basic.Atom, + include : [qx.ui.core.MExecutable], + implement : [qx.ui.form.IExecutable], + + /** + * @param label {String} Label to use + * @param icon {String?null} Icon to use + */ + construct : function(label, icon) + { + this.base(arguments, label, icon); + + this.addListener("mouseover", this._onMouseOver, this); + this.addListener("mouseout", this._onMouseOut, this); + + this.__timer = new qx.event.AcceleratingTimer(); + this.__timer.addListener("interval", this._onInterval, this); + }, + + + properties : + { + // overridden + appearance : + { + refine : true, + init : "hover-button" + }, + + /** + * Interval used after the first run of the timer. Usually a smaller value + * than the "firstInterval" property value to get a faster reaction. + */ + interval : + { + check : "Integer", + init : 80 + }, + + /** + * Interval used for the first run of the timer. Usually a greater value + * than the "interval" property value to a little delayed reaction at the first + * time. + */ + firstInterval : + { + check : "Integer", + init : 200 + }, + + /** This configures the minimum value for the timer interval. */ + minTimer : + { + check : "Integer", + init : 20 + }, + + /** Decrease of the timer on each interval (for the next interval) until minTimer reached. */ + timerDecrease : + { + check : "Integer", + init : 2 + } + }, + + + members : + { + __timer : null, + + + /** + * Start timer on mouse over + * + * @param e {qx.event.type.Mouse} The mouse event + */ + _onMouseOver : function(e) + { + if (!this.isEnabled() || e.getTarget() !== this) { + return; + } + + this.__timer.set({ + interval: this.getInterval(), + firstInterval: this.getFirstInterval(), + minimum: this.getMinTimer(), + decrease: this.getTimerDecrease() + }).start(); + + this.addState("hovered"); + }, + + + /** + * Stop timer on mouse out + * + * @param e {qx.event.type.Mouse} The mouse event + */ + _onMouseOut : function(e) + { + this.__timer.stop(); + this.removeState("hovered"); + + if (!this.isEnabled() || e.getTarget() !== this) { + return; + } + }, + + + /** + * Fire execute event on timer interval event + */ + _onInterval : function() + { + if (this.isEnabled()) + { + this.execute(); + } else { + this.__timer.stop(); + } + } + }, + + + destruct : function() { + this._disposeObjects("__timer"); + } +}); Added: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.0a6c2990ecea.js =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.0a6c2990ecea.js (rev 0) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.0a6c2990ecea.js 2012-10-24 08:43:56 UTC (rev 21792) @@ -0,0 +1,142 @@ +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's left-level directory for details. + + Authors: + * Sebastian Werner (wpbasti) + * Fabian Jakobs (fjakobs) + +************************************************************************ */ + +/** + * Container, which allows vertical and horizontal scrolling if the contents is + * larger than the container. + * + * Note that this class can only have one child widget. This container has a + * fixed layout, which cannot be changed. + * + * *Example* + * + * Here is a little example of how to use the widget. + * + * <pre class='javascript'> + * // create scroll container + * var scroll = new qx.ui.container.Scroll().set({ + * width: 300, + * height: 200 + * }); + * + * // add a widget which is larger than the container + * scroll.add(new qx.ui.core.Widget().set({ + * width: 600, + * minWidth: 600, + * height: 400, + * minHeight: 400 + * }); + * + * this.getRoot().add(scroll); + * </pre> + * + * This example creates a scroll container and adds a widget, which is larger + * than the container. This will cause the container to display vertical + * and horizontal toolbars. + * + * *External Documentation* + * + * <a href='http://manual.qooxdoo.org/${qxversion}/pages/widget/scroll.html' target='_blank'> + * Documentation of this widget in the qooxdoo manual.</a> + */ +qx.Class.define("qx.ui.container.Scroll", +{ + extend : qx.ui.core.scroll.AbstractScrollArea, + include : [qx.ui.core.MContentPadding], + + + + /* + ***************************************************************************** + CONSTRUCTOR + ***************************************************************************** + */ + + /** + * @param content {qx.ui.core.LayoutItem?null} The content widget of the scroll + * container. + */ + construct : function(content) + { + this.base(arguments); + + if (content) { + this.add(content); + } + }, + + + + + /* + ***************************************************************************** + MEMBERS + ***************************************************************************** + */ + + members : + { + /** + * Sets the content of the scroll container. Scroll containers + * may only have one child, so it always replaces the current + * child with the given one. + * + * @param widget {qx.ui.core.Widget} Widget to insert + * @return {void} + */ + add : function(widget) { + this.getChildControl("pane").add(widget); + }, + + + /** + * Returns the content of the scroll area. + * + * @param widget {qx.ui.core.Widget} Widget to remove + * @return {qx.ui.core.Widget} + */ + remove : function(widget) { + this.getChildControl("pane").remove(widget); + }, + + + /** + * Returns the content of the scroll container. + * + * Scroll containers may only have one child. This + * method returns an array containing the child or an empty array. + * + * @return {Object[]} The child array + */ + getChildren : function() { + return this.getChildControl("pane").getChildren(); + }, + + + /** + * Returns the element, to which the content padding should be applied. + * + * @return {qx.ui.core.Widget} The content padding target. + */ + _getContentPaddingTarget : function() { + return this.getChildControl("pane"); + } + } +}); Added: trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.1176fe15c587.js =================================================================== --- trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.1176fe15c587.js (rev 0) +++ trunk/qooxdoo-contrib/Aristo/branches/v1.1/demo/default/source/script/aristo.demo.1176fe15c587.js 2012-10-24 08:43:56 UTC (rev 21792) @@ -0,0 +1,28442 @@ +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2006 STZ-IDA, Germany, http://www.stz-ida.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Til Schneider (til132) + * David Perez Carmona (david-perez) + +************************************************************************ */ + +/** + * A selection model. + */ +qx.Class.define("qx.ui.table.selection.Model", +{ + extend : qx.core.Object, + + + + + /* + ***************************************************************************** + CONSTRUCTOR + ***************************************************************************** + */ + + construct : function() + { + this.base(arguments); + + this.__selectedRangeArr = []; + this.__anchorSelectionIndex = -1; + this.__leadSelectionIndex = -1; + this.hasBatchModeRefCount = 0; + this.__hadChangeEventInBatchMode = false; + }, + + + + /* + ***************************************************************************** + EVENTS + ***************************************************************************** + */ + + events: { + /** Fired when the selection has changed. */ + "changeSelection" : "qx.event.type.Event" + }, + + + + /* + ***************************************************************************** + STATICS + ***************************************************************************** + */ + + statics : + { + + /** {int} The selection mode "none". Nothing can ever be selected. */ + NO_SELECTION : 1, + + /** {int} The selection mode "single". This mode only allows one selected item. */ + SINGLE_SELECTION : 2, + + + /** + * (int) The selection mode "single interval". This mode only allows one + * continuous interval of selected items. + */ + SINGLE_INTERVAL_SELECTION : 3, + + + /** + * (int) The selection mode "multiple interval". This mode only allows any + * selection. + */ + MULTIPLE_INTERVAL_SELECTION : 4, + + + /** + * (int) The selection mode "multiple interval". This mode only allows any + * selection. The difference with the previous one, is that multiple + * selection is eased. A click on an item, toggles its selection state. + * On the other hand, MULTIPLE_INTERVAL_SELECTION does this behavior only + * when Ctrl-clicking an item. + */ + MULTIPLE_INTERVAL_SELECTION_TOGGLE : 5 + }, + + + + /* + ***************************************************************************** + PROPERTIES + ***************************************************************************** + */ + + properties : + { + /** + * Set the selection mode. Valid values are {@link #NO_SELECTION}, + * {@link #SINGLE_SELECTION}, {@link #SINGLE_INTERVAL_SELECTION}, + * {@link #MULTIPLE_INTERVAL_SELECTION} and + * {@link #MULTIPLE_INTERVAL_SELECTION_TOGGLE}. + */ + selectionMode : + { + init : 2, //SINGLE_SELECTION, + check : [1,2,3,4,5], + //[ NO_SELECTION, SINGLE_SELECTION, SINGLE_INTERVAL_SELECTION, MULTIPLE_INTERVAL_SELECTION, MULTIPLE_INTERVAL_SELECTION_TOGGLE ], + apply : "_applySelectionMode" + } + }, + + + + + /* + ***************************************************************************** + MEMBERS + ***************************************************************************** + */ + + members : + { + __hadChangeEventInBatchMode : null, + __anchorSelectionIndex : null, + __leadSelectionIndex : null, + __selectedRangeArr : null, + + + // selectionMode property modifier + _applySelectionMode : function(selectionMode) { + this.resetSelection(); + }, + + + /** + * + * Activates / Deactivates batch mode. In batch mode, no change events will be thrown but + * will be collected instead. When batch mode is turned off again and any events have + * been collected, one event is thrown to inform the listeners. + * + * This method supports nested calling, i. e. batch mode can be turned more than once. + * In this case, batch mode will not end until it has been turned off once for each + * turning on. + * + * @param batchMode {Boolean} true to activate batch mode, false to deactivate + * @return {Boolean} true if batch mode is active, false otherwise + * @throws Error if batch mode is turned off once more than it has been turned on + */ + setBatchMode : function(batchMode) + { + if (batchMode) { + this.hasBatchModeRefCount += 1; + } + else + { + if (this.hasBatchModeRefCount == 0) { + throw new Error("Try to turn off batch mode althoug it was not turned on."); + } + + this.hasBatchModeRefCount -= 1; + + if (this.__hadChangeEventInBatchMode) + { + this.__hadChangeEventInBatchMode = false; + this._fireChangeSelection(); + } + } + + return this.hasBatchMode(); + }, + + + /** + * + * Returns whether batch mode is active. See setter for a description of batch mode. + * + * @return {Boolean} true if batch mode is active, false otherwise + */ + hasBatchMode : function() { + return this.hasBatchModeRefCount > 0; + }, + + + /** + * Returns the first argument of the last call to {@link #setSelectionInterval()}, + * {@link #addSelectionInterval()} or {@link #removeSelectionInterval()}. + * + * @return {Integer} the anchor selection index. + */ + getAnchorSelectionIndex : function() { + return this.__anchorSelectionIndex; + }, + + + /** + * Sets the anchor selection index. Only use this function, if you want manipulate + * the selection manually. + * + * @param index {Integer} the index to set. + */ + _setAnchorSelectionIndex : function(index) { + this.__anchorSelectionIndex = index; + }, + + + /** + * Returns the second argument of the last call to {@link #setSelectionInterval()}, + * {@link #addSelectionInterval()} or {@link #removeSelectionInterval()}. + * + * @return {Integer} the lead selection index. + */ + getLeadSelectionIndex : function() { + return this.__leadSelectionIndex; + }, + + + /** + * Sets the lead selection index. Only use this function, if you want manipulate + * the selection manually. + * + * @param index {Integer} the index to set. + */ + _setLeadSelectionIndex : function(index) { + this.__leadSelectionIndex = index; + }, + + + /** + * Returns an array that holds all the selected ranges of the table. Each + * entry is a map holding information about the "minIndex" and "maxIndex" of the + * selection range. + * + * @return {Map[]} array with all the selected ranges. + */ + _getSelectedRangeArr : function() { + return this.__selectedRangeArr; + }, + + + /** + * Resets (clears) the selection. + */ + resetSelection : function() + { + if (!this.isSelectionEmpty()) + { + this._resetSelection(); + this._fireChangeSelection(); + } + }, + + + /** + * Returns whether the selection is empty. + * + * @return {Boolean} whether the selection is empty. + */ + isSelectionEmpty : function() { + return this.__selectedRangeArr.length == 0; + }, + + + /** + * Returns the number of selected items. + * + * @return {Integer} the number of selected items. + */ + getSelectedCount : function() + { + var selectedCount = 0; + + for (var i=0; i<this.__selectedRangeArr.length; i++) + { + var range = this.__selectedRangeArr[i]; + selectedCount += range.maxIndex - range.minIndex + 1; + } + + return selectedCount; + }, + + + /** + * Returns whether an index is selected. + * + * @param index {Integer} the index to check. + * @return {Boolean} whether the index is selected. + */ + isSelectedIndex : function(index) + { + for (var i=0; i<this.__selectedRangeArr.length; i++) + { + var range = this.__selectedRangeArr[i]; + + if (index >= range.minIndex && index <= range.maxIndex) { + return true; + } + } + + return false; + }, + + + /** + * Returns the selected ranges as an array. Each array element has a + * <code>minIndex</code> and a <code>maxIndex</code> property. + * + * @return {Map[]} the selected ranges. + */ + getSelectedRanges : function() + { + // clone the selection array and the individual elements - this prevents the + // caller from messing with the internal model + var retVal = []; + + for (var i=0; i<this.__selectedRangeArr.length; i++) + { + retVal.push( + { + minIndex : this.__selectedRangeArr[i].minIndex, + maxIndex : this.__selectedRangeArr[i].maxIndex + }); + } + + return retVal; + }, + + + /** + * Calls an iterator function for each selected index. + * + * Usage Example: + * <pre class='javascript'> + * var selectedRowData = []; + * mySelectionModel.iterateSelection(function(index) { + * selectedRowData.push(myTableModel.getRowData(index)); + * }); + * </pre> + * + * @param iterator {Function} the function to call for each selected index. + * Gets the current index as parameter. + * @param object {var ? null} the object to use when calling the handler. + * (this object will be available via "this" in the iterator) + * @return {void} + */ + iterateSelection : function(iterator, object) + { + for (var i=0; i<this.__selectedRangeArr.length; i++) + { + for (var j=this.__selectedRangeArr[i].minIndex; j<=this.__selectedRangeArr[i].maxIndex; j++) { + iterator.call(object, j); + } + } + }, + + + /** + * Sets the selected interval. This will clear the former selection. + * + * @param fromIndex {Integer} the first index of the selection (including). + * @param toIndex {Integer} the last index of the selection (including). + * @return {void} + */ + setSelectionInterval : function(fromIndex, toIndex) + { + var me = this.self(arguments); + + switch(this.getSelectionMode()) + { + case me.NO_SELECTION: + return; + + case me.SINGLE_SELECTION: + // Ensure there is actually a change of selection + if (this.isSelectedIndex(toIndex)) { + return; + } + + fromIndex = toIndex; + break; + + case me.MULTIPLE_INTERVAL_SELECTION_TOGGLE: + this.setBatchMode(true); + try + { + for (var i = fromIndex; i <= toIndex; i++) + { + if (!this.isSelectedIndex(i)) + { + this._addSelectionInterval(i, i); + } + else + { + this.removeSelectionInterval(i, i); + } + } + } + catch (e) + { + // IE doesn't execute the "finally" block if no "catch" block is present + // this hack is used to fix [BUG #3688] + if ( + qx.core.Environment.get("browser.name") == 'ie' && + qx.core.Environment.get("browser.version") <= 7 + ) { + this.setBatchMode(false); + } + throw e; + } + finally { + this.setBatchMode(false); + } + this._fireChangeSelection(); + return; + } + + this._resetSelection(); + this._addSelectionInterval(fromIndex, toIndex); + + this._fireChangeSelection(); + }, + + + /** + * Adds a selection interval to the current selection. + * + * @param fromIndex {Integer} the first index of the selection (including). + * @param toIndex {Integer} the last index of the selection (including). + * @return {void} + */ + addSelectionInterval : function(fromIndex, toIndex) + { + var SelectionModel = qx.ui.table.selection.Model; + + switch(this.getSelectionMode()) + { + case SelectionModel.NO_SELECTION: + return; + + case SelectionModel.MULTIPLE_INTERVAL_SELECTION: + case SelectionModel.MULTIPLE_INTERVAL_SELECTION_TOGGLE: + this._addSelectionInterval(fromIndex, toIndex); + this._fireChangeSelection(); + break; + + default: + this.setSelectionInterval(fromIndex, toIndex); + break; + } + }, + + + /** + * Removes an interval from the current selection. + * + * @param fromIndex {Integer} the first index of the interval (including). + * @param toIndex {Integer} the last index of the interval (including). + * @return {void} + */ + removeSelectionInterval : function(fromIndex, toIndex) + { + this.__anchorSelectionIndex = fromIndex; + this.__leadSelectionIndex = toIndex; + + var minIndex = Math.min(fromIndex, toIndex); + var maxIndex = Math.max(fromIndex, toIndex); + + // Crop the affected ranges + for (var i=0; i<this.__selectedRangeArr.length; i++) + { + var range = this.__selectedRangeArr[i]; + + if (range.minIndex > maxIndex) + { + // We are done + break; + } + else if (range.maxIndex >= minIndex) + { + // This range is affected + var minIsIn = (range.minIndex >= minIndex) && (range.minIndex <= maxIndex); + var maxIsIn = (range.maxIndex >= minIndex) && (range.maxIndex <= maxIndex); + + if (minIsIn && maxIsIn) + { + // This range is removed completely + this.__selectedRangeArr.splice(i, 1); + + // Check this index another time + i--; + } + else if (minIsIn) + { + // The range is cropped from the left + range.minIndex = maxIndex + 1; + } + else if (maxIsIn) + { + // The range is cropped from the right + range.maxIndex = minIndex - 1; + } + else + { + // The range is split + var newRange = + { + minIndex : maxIndex + 1, + maxIndex : range.maxIndex + }; + + this.__selectedRangeArr.splice(i + 1, 0, newRange); + + range.maxIndex = minIndex - 1; + + // We are done + break; + } + } + } + + // this._dumpRanges(); + this._fireChangeSelection(); + }, + + + /... [truncated message content] |
From: <mar...@us...> - 2012-10-22 12:41:39
|
Revision: 21791 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21791&view=rev Author: martinwittemann Date: 2012-10-22 12:41:28 +0000 (Mon, 22 Oct 2012) Log Message: ----------- Updated TextMate module to support the new lint module. Modified Paths: -------------- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/class comment.tmSnippet trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/qx_OO_defineClass.tmSnippet trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/util.py Added Paths: ----------- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/ignoreNoLoopBlock.tmSnippet trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/qx_OO_defineBootstrap.tmSnippet Removed Paths: ------------- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/untitled 2.tmSnippet Modified: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/class comment.tmSnippet =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/class comment.tmSnippet 2012-10-22 08:26:42 UTC (rev 21790) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/class comment.tmSnippet 2012-10-22 12:41:28 UTC (rev 21791) @@ -10,7 +10,7 @@ http://qooxdoo.org Copyright: - 2004-2011 1&1 Internet AG, Germany, http://www.1und1.de + 2004-2012 1&1 Internet AG, Germany, http://www.1und1.de License: LGPL: http://www.gnu.org/licenses/lgpl.html @@ -18,7 +18,7 @@ See the LICENSE file in the project's top-level directory for details. Authors: - * $TM_FULLNAME (${1:$QOOXDOO_USERNAME}) + * $TM_FULLNAME (${1:$QOOXDOO_USERNAME}) ************************************************************************ */</string> <key>name</key> Added: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/ignoreNoLoopBlock.tmSnippet =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/ignoreNoLoopBlock.tmSnippet (rev 0) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/ignoreNoLoopBlock.tmSnippet 2012-10-22 12:41:28 UTC (rev 21791) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>content</key> + <string>@lint ignoreNoLoopBlock()</string> + <key>name</key> + <string>ignoreNoLoopBlock</string> + <key>scope</key> + <string>comment.block</string> + <key>tabTrigger</key> + <string>lint</string> + <key>uuid</key> + <string>1E1028CC-F9A6-4052-AC49-740B8A72E7AF</string> +</dict> +</plist> Added: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/qx_OO_defineBootstrap.tmSnippet =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/qx_OO_defineBootstrap.tmSnippet (rev 0) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/qx_OO_defineBootstrap.tmSnippet 2012-10-22 12:41:28 UTC (rev 21791) @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>content</key> + <string>qx.Class.define("${1:ns.classname}", +{ + extend : ${2:qx.core.Object}, + + + construct : function($3) + { + this.base(arguments); + + $4 + }, + + members : + { + } +});</string> + <key>name</key> + <string>qx.Class.define</string> + <key>scope</key> + <string>source.js</string> + <key>tabTrigger</key> + <string>Class</string> + <key>uuid</key> + <string>D1D58444-F3E7-4290-A82A-21EA44CCF5AA</string> +</dict> +</plist> Modified: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/qx_OO_defineClass.tmSnippet =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/qx_OO_defineClass.tmSnippet 2012-10-22 08:26:42 UTC (rev 21790) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/qx_OO_defineClass.tmSnippet 2012-10-22 12:41:28 UTC (rev 21791) @@ -11,7 +11,7 @@ construct : function($3) { this.base(arguments); - + $4 }, @@ -20,11 +20,11 @@ } });</string> <key>name</key> - <string>qx.Class.define</string> + <string>qx.Bootstrap.define</string> <key>scope</key> <string>source.js</string> <key>tabTrigger</key> - <string>Class</string> + <string>Bootstrap</string> <key>uuid</key> <string>D1D58444-F3E7-4290-A82A-21EA44CCF5AA</string> </dict> Deleted: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/untitled 2.tmSnippet =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/untitled 2.tmSnippet 2012-10-22 08:26:42 UTC (rev 21790) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/untitled 2.tmSnippet 2012-10-22 12:41:28 UTC (rev 21791) @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>content</key> - <string> -* </string> - <key>keyEquivalent</key> - <string> -</string> - <key>name</key> - <string>* in comments</string> - <key>scope</key> - <string>comment.block</string> - <key>uuid</key> - <string>A46916CA-0D15-4E19-8219-5D27DF7F4C01</string> -</dict> -</plist> Modified: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py 2012-10-22 08:26:42 UTC (rev 21790) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py 2012-10-22 12:41:28 UTC (rev 21791) @@ -1,61 +1,57 @@ -#!/usr/bin/env python -# encoding: utf-8 -""" -untitled.py - -Created by Fabian Jakobs on 2007-08-01. -Copyright (c) 2007 1&1. All rights reserved. -""" - -import re -import os -import sys -import getopt - -import util -util.addQooxdooClassPath() - -from ecmascript.frontend import treegenerator -import ecmalint - - -def lint(file, popup): - if popup: - logger = util.PopupLogger() - else: - logger = util.TextMateLogger() - - logger.printHeader("qooxdoo JavaScript lint", "qooxdoo JavaScript lint") - try: - lint = ecmalint.Lint(file, logger) - lint.checkMaps() - lint.checkUnusedVariables() - lint.checkUndefinedVariables(["qx", "qui"]) - lint.checkRequiredBlocks() - lint.checkFields() - lint.checkReferenceFields() - - except treegenerator.SyntaxException, e: - errorRe = re.compile("(.*file:, line:(\d+), column:(\d+))") - match = errorRe.match(str(e)).groups() - logger.log(file, match[1], match[2], match[0]) - - logger.printFooter() - - -def main(argv=None): - if argv is None: - argv = sys.argv - - if len(argv) == 3: - popup = argv[2] == "popup" - else: - popup = False - - try: - lint(argv[1], popup) - except: - pass - -if __name__ == "__main__": - sys.exit(main()) +#!/usr/bin/env python +# encoding: utf-8 +""" +Created by Fabian Jakobs on 2007-08-01. +Copyright (c) 2007 1&1. All rights reserved. +""" + +import re, codecs +import os +import sys +import getopt + +import util +util.addQooxdooClassPath() + +from ecmascript.frontend import treegenerator +from ecmascript.transform.check import scopes, lint +from generator import Context as context + + +def do_lint(file_, popup): + if popup: + logger = util.PopupLogger() + else: + logger = util.TextMateLogger() + + logger.printHeader("qooxdoo JavaScript lint", "qooxdoo JavaScript lint") + try: + opts = lint.defaultOptions() + opts.allowed_globals = ['qx', 'qxWeb', 'q'] + + tree_ = treegenerator.createFileTree_from_string( + codecs.open(file_, "r", "utf-8").read()) + tree_ = scopes.create_scopes(tree_) + if not hasattr(context,'jobconf'): + context.jobconf = {} + lint.lint_check(tree_, "", opts) + + except treegenerator.SyntaxException, e: + logger.log(file_, 0, 0, str(e)) + + logger.printFooter() + + +def main(argv=None): + if argv is None: + argv = sys.argv + + if len(argv) == 3: + popup = argv[2] == "popup" + else: + popup = False + + do_lint(argv[1], popup) + +if __name__ == "__main__": + sys.exit(main()) Modified: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/util.py =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/util.py 2012-10-22 08:26:42 UTC (rev 21790) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/util.py 2012-10-22 12:41:28 UTC (rev 21791) @@ -16,11 +16,11 @@ if os.path.isdir(qxPath): return qxPath - logger = TextMateLogger() + logger = TextMateLogger() logger.printHeader("qooxdoo SDK not found", "qooxdoo SDK not found") print "The path to the qooxdoo SDK could not be found. Please configure the QOOXDOO_PATH shell variable to point to the the qooxdoo SDK directory. You can do this in the Advanced tab of the Preferences dialog." - logger.printFooter() - + logger.printFooter() + #os.system("""CocoaDialog msgbox --title "qooxdoo SDK not found" --button1 "OK" --text "qooxdoo SDK not found" --informative-text "The path to the qooxdoo SDK could not be found. Please configure the QOOXDOO_PATH shell variable to point to the the qooxdoo SDK directory. You can do this in the Advanced tab of the Preferences dialog." """) sys.exit() @@ -90,13 +90,13 @@ def printFooter(self): print HTML_FOOTER - + class PopupLogger: def printHeader(self, title, heading): pass def log(self, filename, row, column, msg): - print "row: %s, column: %s, Message: %s" % (row, column, msg.encode('ascii', 'replace')) + print msg.encode('ascii', 'replace') def printFooter(self): pass This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2012-10-22 08:26:52
|
Revision: 21790 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21790&view=rev Author: d_wagner Date: 2012-10-22 08:26:42 +0000 (Mon, 22 Oct 2012) Log Message: ----------- [BUG #5664] Added interaction test for the mobiletweets tutorial Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_mobiletweets.js Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js 2012-09-28 08:40:58 UTC (rev 21789) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/Simulation.js 2012-10-22 08:26:42 UTC (rev 21790) @@ -753,21 +753,63 @@ } }; +/** + * Checks if an element is rendered (included in the DOM) + * @param locator {String} Element locator + * @return {Boolean} <code>true</code> if the element is in the DOM + */ +simulation.Simulation.prototype.isElementPresent = function(locator) +{ + var cmd = 'selenium.isElementPresent("' + locator + '")'; + var result = String(this.__sel.getEval(cmd)); + return result == "true"; +}; +/** + * Repeatedly checks if an element is present. If the element is not present + * before the timeout is reached, an exception is thrown. + * @param locator {String} Element locator + * @param timeout {Integer} Timeout in milliseconds + * @throws {Error} if the element was not found before the timeout was reached + */ simulation.Simulation.prototype.waitForElementPresent = function(locator, timeout) { var condition = 'selenium.isElementPresent("' + locator + '")'; this.__sel.waitForCondition(condition, timeout || 5000); }; +/** + * Checks if an element is visible, i.e. "display" is not "none" and "visibility" + * is not "hidden" + * @param locator {String} Element locator + * @return {Boolean} <code>true</code> if the element is visible + */ +simulation.Simulation.prototype.isElementVisible = function(locator) +{ + var cmd = 'selenium.isVisible("' + locator + '")'; + var result = String(this.__sel.getEval(cmd)); + return result == "true"; +}; +/** + * Repeatedly checks if an element is visible. If the element is not visible + * before the timeout is reached, an exception is thrown. + * @param locator {String} Element locator + * @param timeout {Integer} Timeout in milliseconds + * @throws {Error} if the element was not visible before the timeout was reached + */ simulation.Simulation.prototype.waitForElementVisible = function(locator, timeout) { var condition = 'selenium.isVisible("' + locator + '")'; this.__sel.waitForCondition(condition, timeout || 5000); }; - +/** + * Creates a {@link qx.bom.Collection} and returns the innerHTML of each element + * in the collection in an array. + * @param query {String} Selector query string + * @return {String[]} Array of HTML strings + */ simulation.Simulation.prototype.getInnerHtmlFromCollection = function(query) { var getter="var titles = [];" + @@ -777,8 +819,9 @@ "}" + "selenium.browserbot.getCurrentWindow().qx.lang.Json.stringify(titles);"; + var stringResult; try { - var stringResult = "var temp=" + String(this.__sel.getEval(getter)); + stringResult = "var temp=" + String(this.__sel.getEval(getter)); } catch(ex) { this.log("Couldn't get innerHTML for selector " + query + ": " + ex.message); Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_mobiletweets.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_mobiletweets.js 2012-09-28 08:40:58 UTC (rev 21789) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_mobiletweets.js 2012-10-22 08:26:42 UTC (rev 21790) @@ -1,8 +1,9 @@ var baseConf = { 'autName' : 'TutorialMobiletweets', - 'globalTimeout' : 300000, - 'stepSpeed' : '500', - 'debug' : true + 'globalTimeout' : 120000, + 'stepSpeed' : '250', + 'debug' : false, + 'applicationLog' : false }; var args = arguments ? arguments : ""; @@ -15,37 +16,64 @@ load([simSvn + "/trunk/tool/selenium/simulation/Simulation.js"]); -var mySim = new simulation.Simulation(baseConf,args); +var sim = new simulation.Simulation(baseConf,args); var selWin = simulation.Simulation.SELENIUMWINDOW; var qxAppInst = simulation.Simulation.QXAPPINSTANCE; +simulation.Simulation.prototype.runTest = function() { + var backButtonLocator = "css=.navigationbar-backbutton"; + + this.__sel.type("css=.textField", "linuxfoundation"); + this.qxClick("css=.button"); + try { + this.waitForElementPresent(backButtonLocator, 3000); + } + catch(ex) { + this.log("Back button not displayed after clicking 'Show'!", "error"); + return; + } + + try { + this.waitForElementPresent("css=.listItem", 1000); + } + catch(ex) { + this.log("No list items displayed!", "error"); + } + + this.qxClick(backButtonLocator); + Packages.java.lang.Thread.sleep(3000); + if (this.isElementVisible(backButtonLocator)) { + this.log("Back button still visible after clicking it!", "error"); + } +}; + // - Main -------------------------------------------------------------------- -(function() { - mySim.testFailed = false; +(function() { + sim.testFailed = false; - var sessionStarted = mySim.startSession(); - + var sessionStarted = sim.startSession(); + if (!sessionStarted) { return; } - var isAppReady = mySim.waitForCondition(simulation.Simulation.ISQXAPPREADY, 60000, + var isAppReady = sim.waitForCondition(simulation.Simulation.ISQXAPPREADY, 60000, "Waiting for qooxdoo application"); if (!isAppReady) { - mySim.testFailed = true; - mySim.stop(); + sim.testFailed = true; + sim.stop(); return; } - mySim.setupApplicationLogging(); - mySim.addGlobalErrorHandler(); - java.lang.Thread.sleep(5000); - mySim.logGlobalErrors(); - mySim.logResults(); + //sim.setupApplicationLogging(); + sim.addGlobalErrorHandler(); + sim.runTest(); + sim.logGlobalErrors(); + sim.logResults(); - mySim.stop(); + sim.stop(); -})(); \ No newline at end of file +})(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2012-09-28 08:41:09
|
Revision: 21789 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21789&view=rev Author: d_wagner Date: 2012-09-28 08:40:58 +0000 (Fri, 28 Sep 2012) Log Message: ----------- Test Selected state Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js 2012-09-28 08:39:48 UTC (rev 21788) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js 2012-09-28 08:40:58 UTC (rev 21789) @@ -120,7 +120,7 @@ simulation.Simulation.prototype.testStates = function(tabName) { - var states = ["Disabled", "Hovered", "Focused", "Invalid", "Hide some", "Overflow"]; + var states = ["Disabled", "Hovered", "Focused", "Invalid", "Selected", "Hide some", "Overflow"]; for (var i=0,l=states.length; i<l; i++) { var state = states[i]; var buttonLocator = locators.stateButtonLocator.replace("STATE", state); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2012-09-28 08:39:59
|
Revision: 21788 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21788&view=rev Author: d_wagner Date: 2012-09-28 08:39:48 +0000 (Fri, 28 Sep 2012) Log Message: ----------- Select all tabs in each theme; test state buttons Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js 2012-09-06 07:22:57 UTC (rev 21787) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/widgetbrowser/test_widgetbrowser.js 2012-09-28 08:39:48 UTC (rev 21788) @@ -27,74 +27,62 @@ var qxAppInst = simulation.Simulation.QXAPPINSTANCE; var locators = { tabView : 'qxh=child[0]/qx.ui.container.Scroll/qx.ui.core.scroll.ScrollPane/[@classname="widgetbrowser.view.TabView"]', - tabContainer : '/qx.ui.container.SlideBar/qx.ui.core.scroll.ScrollPane/qx.ui.container.Composite' + tabContainer : '/qx.ui.container.SlideBar/qx.ui.core.scroll.ScrollPane/qx.ui.container.Composite', + themeSelectBox : 'qxh=child[0]/[@classname="widgetbrowser.view.Header"]/qx.ui.form.SelectBox', + themeListItem : 'qxh=*/qx.ui.popup.Popup/qx.ui.form.List/[@label="THEME"]', + stateButtonLocator : 'qxhv=qx.ui.container.Composite/*/qx.ui.tabview.TabView/*/[@label="STATE"]' }; simulation.Simulation.prototype.runTest = function() { // Make sure the locale is 'en' to simplify dealing with log messages. - var setLocale = "qx.locale.Manager.getInstance().setLocale('en')"; + var setLocale = "qx.locale.Manager.getInstance().setLocale('en')"; this.runScript(setLocale, "Setting application locale to EN"); - - this.checkUrlParameter(); - + // Log any errors caught during showcase startup this.logGlobalErrors(); this.clearGlobalErrorStore(); - + var tabNames = this.getTabNames(); - for (var i=0,l=tabNames.length; i<l; i++) { - this.testTab(tabNames[i]); + var themeNames = this.getThemeNames(); + + for (var i = themeNames.length - 1; i >= 0; i--) { + var theme = themeNames[i]; + this.selectTheme(theme); + for (var j = tabNames.length - 1; j >= 0; j--) { + this.testTab(tabNames[j]); + } } }; -simulation.Simulation.prototype.checkUrlParameter = function() + +simulation.Simulation.prototype.getTabNames = function() { - var selectedTheme = "qx.theme.Simple"; - - var urlWithParam = this.getConfigSetting("autHost") + "" - + this.getConfigSetting("autPath") + "?qx.theme=" + selectedTheme; - this.qxOpen(urlWithParam); - var isAppReady = this.waitForCondition(simulation.Simulation.ISQXAPPREADY, 60000, - "Waiting for qooxdoo application"); + var labelGetter = 'var labels = [];' + + 'var pages = this.getChildren();' + + 'for (var i=0,l=pages.length; i<l; i++) {' + + ' labels.push(pages[i].getLabel());' + + '}' + + 'return labels;'; - if (!isAppReady) { - this.testFailed = true; - this.log("checkUrlParameter: Application was not reloaded correctly!", "error"); - return; - } - - this.addGlobalErrorHandler(); - this.setupApplicationLogging(); - - var environmentTheme = ""; - var themeGetter = selWin + ".qx.core.Environment.get(\"qx.theme\")"; + var strVal = String(this.__sel.getRunInContext(locators.tabView, labelGetter)); try { - environmentTheme = this.__sel.getEval(themeGetter); + return eval(strVal); + } catch(ex) { + return strVal.split(","); } - catch(ex) { - this.log("checkUrlParameter: Unable to query theme environment setting!", "error"); - return; - } - - if (environmentTheme != selectedTheme) { - this.log("checkUrlParameter: Expected theme " + selectedTheme + " but core.environment says " + environmentTheme, "error"); - return; - } - - this.log("checkUrlParameter: Theme setting from URL applied correctly", "info"); }; -simulation.Simulation.prototype.getTabNames = function() +simulation.Simulation.prototype.getThemeNames = function() { - var labelGetter = 'var labels = [];\ - var pages = this.getChildren();\ - for (var i=0,l=pages.length; i<l; i++) {\ - labels.push(pages[i].getLabel());\ - }\ - return labels;'; - - var strVal = String(this.__sel.getRunInContext(locators.tabView, labelGetter)); + var themeGetter = 'var themes = [];' + + 'var items = this.getChildren();' + + 'for (var i=0,l=items.length; i<l; i++) {' + + ' themes.push(items[i].getLabel());' + + '}' + + 'return themes;'; + + var strVal = String(this.__sel.getRunInContext(locators.themeSelectBox, themeGetter)); try { return eval(strVal); } catch(ex) { @@ -102,6 +90,19 @@ } }; + +simulation.Simulation.prototype.selectTheme = function(themeName) +{ + this.log("Selecting theme: " + themeName, "info"); + this.__sel.qxClick(locators.themeSelectBox); + Packages.java.lang.Thread.sleep(1000); + this.__sel.qxClick(locators.themeListItem.replace("THEME", themeName)); + Packages.java.lang.Thread.sleep(3000); + this.logGlobalErrors(); + this.clearGlobalErrorStore(); +}; + + simulation.Simulation.prototype.testTab = function(tabName) { this.log("Clicking Tab " + tabName, "info"); @@ -109,25 +110,42 @@ tabName = /(.*?)\//.exec(tabName)[1]; } this.qxClick(locators.tabView + locators.tabContainer + '/[@label=' + tabName + ']'); - // Give the demo part some time to appear Packages.java.lang.Thread.sleep(5000); - // Log any errors caught during demo startup + this.testStates(); this.logGlobalErrors(); this.clearGlobalErrorStore(); }; + +simulation.Simulation.prototype.testStates = function(tabName) +{ + var states = ["Disabled", "Hovered", "Focused", "Invalid", "Hide some", "Overflow"]; + for (var i=0,l=states.length; i<l; i++) { + var state = states[i]; + var buttonLocator = locators.stateButtonLocator.replace("STATE", state); + if (this.__sel.isElementPresent(buttonLocator)) { + this.log("Testing state: " + state, "debug"); + this.__sel.qxClick(buttonLocator); + Packages.java.lang.Thread.sleep(1000); + this.__sel.qxClick(buttonLocator); + Packages.java.lang.Thread.sleep(1000); + } + } +}; + + // - Main -------------------------------------------------------------------- -(function() { +(function() { mySim.testFailed = false; var sessionStarted = mySim.startSession(); - + if (!sessionStarted) { return; } - var isAppReady = mySim.waitForCondition(simulation.Simulation.ISQXAPPREADY, 60000, + var isAppReady = mySim.waitForCondition(simulation.Simulation.ISQXAPPREADY, 60000, "Waiting for qooxdoo application"); @@ -156,4 +174,4 @@ mySim.stop(); -})(); \ No newline at end of file +})(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2012-09-06 07:23:08
|
Revision: 21787 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21787&view=rev Author: d_wagner Date: 2012-09-06 07:22:57 +0000 (Thu, 06 Sep 2012) Log Message: ----------- log global errors after each test case Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js 2012-08-28 12:15:16 UTC (rev 21786) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js 2012-09-06 07:22:57 UTC (rev 21787) @@ -155,6 +155,8 @@ this.log("Error while testing " + listItems[i] + ": " + ex.message, "error"); } } + this.logGlobalErrors(); + this.clearGlobalErrorStore(); } }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2012-08-28 12:15:28
|
Revision: 21786 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21786&view=rev Author: thron7 Date: 2012-08-28 12:15:16 +0000 (Tue, 28 Aug 2012) Log Message: ----------- added 2.1 folder Added Paths: ----------- trunk/qooxdoo-contrib/Translation/2.1/ trunk/qooxdoo-contrib/Translation/2.1/feedreader/ trunk/qooxdoo-contrib/Translation/2.1/feedreader/cs.po trunk/qooxdoo-contrib/Translation/2.1/feedreader/de.po trunk/qooxdoo-contrib/Translation/2.1/feedreader/en.po trunk/qooxdoo-contrib/Translation/2.1/feedreader/es.po trunk/qooxdoo-contrib/Translation/2.1/feedreader/fr.po trunk/qooxdoo-contrib/Translation/2.1/feedreader/it.po trunk/qooxdoo-contrib/Translation/2.1/feedreader/nl.po trunk/qooxdoo-contrib/Translation/2.1/feedreader/ro.po trunk/qooxdoo-contrib/Translation/2.1/feedreader/sv.po trunk/qooxdoo-contrib/Translation/2.1/framework/ trunk/qooxdoo-contrib/Translation/2.1/framework/cs.po trunk/qooxdoo-contrib/Translation/2.1/framework/de.po trunk/qooxdoo-contrib/Translation/2.1/framework/en.po trunk/qooxdoo-contrib/Translation/2.1/framework/es.po trunk/qooxdoo-contrib/Translation/2.1/framework/fr.po trunk/qooxdoo-contrib/Translation/2.1/framework/it.po trunk/qooxdoo-contrib/Translation/2.1/framework/nb.po trunk/qooxdoo-contrib/Translation/2.1/framework/nl.po trunk/qooxdoo-contrib/Translation/2.1/framework/pl.po trunk/qooxdoo-contrib/Translation/2.1/framework/pt.po trunk/qooxdoo-contrib/Translation/2.1/framework/ro.po trunk/qooxdoo-contrib/Translation/2.1/framework/sl.po trunk/qooxdoo-contrib/Translation/2.1/framework/sv.po trunk/qooxdoo-contrib/Translation/2.1/playground/ trunk/qooxdoo-contrib/Translation/2.1/playground/cs.po trunk/qooxdoo-contrib/Translation/2.1/playground/de.po trunk/qooxdoo-contrib/Translation/2.1/playground/en.po trunk/qooxdoo-contrib/Translation/2.1/playground/ro.po trunk/qooxdoo-contrib/Translation/2.1/playground/sv.po trunk/qooxdoo-contrib/Translation/2.1/showcase/ trunk/qooxdoo-contrib/Translation/2.1/showcase/cs.po trunk/qooxdoo-contrib/Translation/2.1/showcase/de.po trunk/qooxdoo-contrib/Translation/2.1/showcase/de_AT.po trunk/qooxdoo-contrib/Translation/2.1/showcase/de_DE.po trunk/qooxdoo-contrib/Translation/2.1/showcase/en.po trunk/qooxdoo-contrib/Translation/2.1/showcase/en_GB.po trunk/qooxdoo-contrib/Translation/2.1/showcase/en_US.po trunk/qooxdoo-contrib/Translation/2.1/showcase/es.po trunk/qooxdoo-contrib/Translation/2.1/showcase/es_ES.po trunk/qooxdoo-contrib/Translation/2.1/showcase/es_MX.po trunk/qooxdoo-contrib/Translation/2.1/showcase/pt.po trunk/qooxdoo-contrib/Translation/2.1/showcase/ro.po trunk/qooxdoo-contrib/Translation/2.1/showcase/ro_RO.po trunk/qooxdoo-contrib/Translation/2.1/showcase/sv.po trunk/qooxdoo-contrib/Translation/2.1/showcase/sv_SE.po Added: trunk/qooxdoo-contrib/Translation/2.1/feedreader/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/feedreader/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/feedreader/cs.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,77 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2012-08-27 08:22+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Language: Czech\n" + +msgid "Add" +msgstr "Přidat" + +msgid "Add a feed" +msgstr "Přidat zdroj" + +msgid "Add feed" +msgstr "Přidat zdroj" + +msgid "Back" +msgstr "Zpět" + +msgid "Cancel" +msgstr "Storno" + +msgid "Feed Information" +msgstr "Informace o zdroji" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (běží na qooxdoo)" + +msgid "Help" +msgstr "Nápověda" + +msgid "Language" +msgstr "Jazyk" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Otevřít okno nastavení." + +msgid "Posts" +msgstr "Příspěvky" + +msgid "Preferences" +msgstr "Nastavení" + +msgid "Reload" +msgstr "Obnovit" + +msgid "Reload the feeds. (%1)" +msgstr "Obnovit zdroje. (%1)" + +msgid "Remove feed" +msgstr "Odstranit zdroj" + +msgid "Static Feeds" +msgstr "Statické zdroje" + +msgid "Title" +msgstr "Název" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Uživatelské zdroje" Added: trunk/qooxdoo-contrib/Translation/2.1/feedreader/de.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/feedreader/de.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/feedreader/de.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,73 @@ +# German +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"PO-Revision-Date: 2008-06-23 16:26+0200\n" +"Last-Translator: Thomas Herchenroeder <thron7 AT users DOT sourceforge DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "Add" +msgstr "Hinzufügen" + +msgid "Add a feed" +msgstr "Feed hinzufügen" + +msgid "Add feed" +msgstr "Feed hinzufügen" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Abbrechen" + +msgid "Feed Information" +msgstr "Feed Information" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo powered)" + +msgid "Help" +msgstr "Hilfe" + +msgid "Language" +msgstr "Sprache" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Einstellungsfenster öffnen" + +msgid "Posts" +msgstr "Nachrichten" + +msgid "Preferences" +msgstr "Einstellungen" + +msgid "Reload" +msgstr "Neu laden" + +msgid "Reload the feeds. (%1)" +msgstr "Feeds neu laden. (%1)" + +msgid "Remove feed" +msgstr "Feed löschen" + +msgid "Static Feeds" +msgstr "Vordefinierte Quellen" + +msgid "Title" +msgstr "Titel" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Eigene Quellen" Added: trunk/qooxdoo-contrib/Translation/2.1/feedreader/en.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/feedreader/en.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/feedreader/en.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,74 @@ +# English +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2006-12-21 10:17+0100\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ASCII\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Add" +msgstr "" + +msgid "Add a feed" +msgstr "" + +msgid "Add feed" +msgstr "" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Feed Information" +msgstr "" + +msgid "FeedReader (qooxdoo powered)" +msgstr "" + +msgid "Help" +msgstr "" + +msgid "Language" +msgstr "" + +msgid "OK" +msgstr "" + +msgid "Open preferences window." +msgstr "" + +msgid "Posts" +msgstr "" + +msgid "Preferences" +msgstr "" + +msgid "Reload" +msgstr "" + +msgid "Reload the feeds. (%1)" +msgstr "" + +msgid "Remove feed" +msgstr "" + +msgid "Static Feeds" +msgstr "" + +msgid "Title" +msgstr "" + +msgid "URL" +msgstr "" + +msgid "User Feeds" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.1/feedreader/es.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/feedreader/es.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/feedreader/es.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,75 @@ +# Spanish +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2008-08-25 19:54-0500\n" +"Last-Translator: Camilo Aguilar <camilo DOT aguila AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: COLOMBIA\n" + +msgid "Add" +msgstr "Agregar" + +msgid "Add a feed" +msgstr "Agregar Feed" + +msgid "Add feed" +msgstr "Agregar feed" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Feed Information" +msgstr "Información del Feed" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo powered)" + +msgid "Help" +msgstr "Ayuda" + +msgid "Language" +msgstr "Lenguaje" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Abre la ventana de preferencias" + +msgid "Posts" +msgstr "Posts" + +msgid "Preferences" +msgstr "Preferencias" + +msgid "Reload" +msgstr "Actualizar" + +msgid "Reload the feeds. (%1)" +msgstr "Recargar los feeds (%1)" + +msgid "Remove feed" +msgstr "Eliminar feed" + +msgid "Static Feeds" +msgstr "Feeds Estáticos" + +msgid "Title" +msgstr "Título" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Feeds del Usuario" Added: trunk/qooxdoo-contrib/Translation/2.1/feedreader/fr.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/feedreader/fr.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/feedreader/fr.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,74 @@ +# French +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-11-09 22:22+0100\n" +"PO-Revision-Date: 2007-04-07 11:30+0200\n" +"Last-Translator: Daniel Gagnon <redalastor AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Add" +msgstr "Ajouter" + +msgid "Add a feed" +msgstr "Ajouter un fil" + +msgid "Add feed" +msgstr "Ajouter un fil" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Feed Information" +msgstr "Information sur le fil" + +msgid "FeedReader (qooxdoo powered)" +msgstr "Agrégateur de fils de syndication (fait à l'aide de qooxdoo)" + +msgid "Help" +msgstr "Aide" + +msgid "Language" +msgstr "Langue" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Ouvrir la fenêtre de préférences" + +msgid "Posts" +msgstr "Messages" + +msgid "Preferences" +msgstr "Préférences" + +msgid "Reload" +msgstr "Rafraichir" + +msgid "Reload the feeds. (%1)" +msgstr "Rafraichir les fils. (%1)" + +msgid "Remove feed" +msgstr "Enlever un fil" + +msgid "Static Feeds" +msgstr "Fils statiques" + +msgid "Title" +msgstr "Titre" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Fils de l'utilisateur" Added: trunk/qooxdoo-contrib/Translation/2.1/feedreader/it.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/feedreader/it.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/feedreader/it.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,75 @@ +# Italian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-11-09 22:22+0100\n" +"PO-Revision-Date: 2008-08-26 18:49+0100\n" +"Last-Translator: Alessandro Sala <alessandro DOT sala AT mclink DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "Add" +msgstr "Aggiungi" + +msgid "Add a feed" +msgstr "Aggiungi un feed" + +msgid "Add feed" +msgstr "Aggiungi un feed" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Annulla" + +msgid "Feed Information" +msgstr "Informazioni sul Feed" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (realizzato con qooxdoo)" + +msgid "Help" +msgstr "Aiuto" + +msgid "Language" +msgstr "Lingua" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Apri la finestra delle preferenze." + +msgid "Posts" +msgstr "Messaggi" + +msgid "Preferences" +msgstr "Preferenze" + +msgid "Reload" +msgstr "Ricarica" + +msgid "Reload the feeds. (%1)" +msgstr "Ricarica i feed. (%1)" + +msgid "Remove feed" +msgstr "Rimuovi il feed" + +msgid "Static Feeds" +msgstr "Feed statici" + +msgid "Title" +msgstr "Titolo" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Feed utente" Added: trunk/qooxdoo-contrib/Translation/2.1/feedreader/nl.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/feedreader/nl.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/feedreader/nl.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,73 @@ +# Dutch +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2009-12-11 23:51+0100\n" +"Last-Translator: Isaak Malik <isooik AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Add" +msgstr "Toevoegen" + +msgid "Add a feed" +msgstr "Een feed toevoegen" + +msgid "Add feed" +msgstr "Feed toevoegen" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Annuleren" + +msgid "Feed Information" +msgstr "Feed Informatie" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo powered)" + +msgid "Help" +msgstr "Help" + +msgid "Language" +msgstr "Taal" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Open voorkeuren venster." + +msgid "Posts" +msgstr "Berichten" + +msgid "Preferences" +msgstr "Voorkeuren" + +msgid "Reload" +msgstr "Herladen" + +msgid "Reload the feeds. (%1)" +msgstr "Feeds herladen. (%1)" + +msgid "Remove feed" +msgstr "Feed verwijderen" + +msgid "Static Feeds" +msgstr "Statische Feeds" + +msgid "Title" +msgstr "Titel" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Gebruiker Feeds" Added: trunk/qooxdoo-contrib/Translation/2.1/feedreader/ro.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/feedreader/ro.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/feedreader/ro.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,74 @@ +# Romanian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2010-11-08 15:35+0200\n" +"Last-Translator: Gabriel Munteanu <gabriel DOT munteanu AT 1and1 DOT ro>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Add" +msgstr "Adaugă" + +msgid "Add a feed" +msgstr "Adaugă un flux" + +msgid "Add feed" +msgstr "Adaugă flux" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Anulează" + +msgid "Feed Information" +msgstr "Informații despre flux" + +msgid "FeedReader (qooxdoo powered)" +msgstr "Cititor de Fluxuri (bazat pe qooxdoo)" + +msgid "Help" +msgstr "Ajutor" + +msgid "Language" +msgstr "Limbă" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Deschide fereastra de preferințe" + +msgid "Posts" +msgstr "Articole" + +msgid "Preferences" +msgstr "Preferințe" + +msgid "Reload" +msgstr "Reîncarcă" + +msgid "Reload the feeds. (%1)" +msgstr "Reîncarcă fluxurile. (%1)" + +msgid "Remove feed" +msgstr "Şterge flux" + +msgid "Static Feeds" +msgstr "Fluxuri statice" + +msgid "Title" +msgstr "Titlu" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Fluxuri utilizator" Added: trunk/qooxdoo-contrib/Translation/2.1/feedreader/sv.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/feedreader/sv.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/feedreader/sv.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,74 @@ +# Swedish +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-11-09 22:22+0100\n" +"PO-Revision-Date: 2008-08-27 11:10+0100\n" +"Last-Translator: Henric Johansson <henric DOT johansson AT mindset DOT se>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +msgid "Add" +msgstr "Lägg till" + +msgid "Add a feed" +msgstr "Lägg till ett flöde" + +msgid "Add feed" +msgstr "Lägg till flöde" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Feed Information" +msgstr "Flödesinformation" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo driven)" + +msgid "Help" +msgstr "Hjälp" + +msgid "Language" +msgstr "Språk" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Öppna inställningsfönstret" + +msgid "Posts" +msgstr "Poster" + +msgid "Preferences" +msgstr "Inställningar" + +msgid "Reload" +msgstr "Uppdatera" + +msgid "Reload the feeds. (%1)" +msgstr "Ladda om flödena. (%1)" + +msgid "Remove feed" +msgstr "Ta bort flöde" + +msgid "Static Feeds" +msgstr "Statiska flöden" + +msgid "Title" +msgstr "Titel" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Användarflöden" Added: trunk/qooxdoo-contrib/Translation/2.1/framework/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/framework/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/framework/cs.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,289 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2012-08-27 09:23+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Language: Czech\n" + +msgid "%1 does not fit %2." +msgstr "%1 neodpovídá %2." + +msgid "%1 is not a color! %2" +msgstr "%1 není barva! %2" + +msgid "%1 is not a number." +msgstr "%1 není číslo." + +msgid "%1 is not a string." +msgstr "%1 není řetězec." + +msgid "%1 is not an url." +msgstr "%1 není URL." + +msgid "%1 is not in %2" +msgstr "%1 není v %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 není v intervalu [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' není e-mailová adresa." + +msgid "Automatic" +msgstr "Automaticky" + +msgid "Cancel" +msgstr "Storno" + +msgid "Color Selector" +msgstr "Výběr barvy" + +msgid "Details" +msgstr "Podrobnosti" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Předchozí měsíc" + +msgid "Last year" +msgstr "Předchozí rok" + +msgid "Next month" +msgstr "Další měsíc" + +msgid "Next year" +msgstr "Další rok" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Otevřít Výběr barvy" + +msgid "Presets" +msgstr "Předvolby" + +msgid "Preview (Old/New)" +msgstr "Náhled (starý/nový)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Obnovit šířky sloupců" + +msgid "This field is required" +msgstr "Toto pole je povinné" + +msgid "Visual" +msgstr "Vizuální" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Kontextové menu" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +msgid "key_full_Control" +msgstr "Ctrl" + +msgid "key_full_Control_Mac" +msgstr "Ctrl" + +msgid "key_full_Delete" +msgstr "Del" + +msgid "key_full_Down" +msgstr "Dolů" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Esc" + +msgid "key_full_Home" +msgstr "Home" + +msgid "key_full_Insert" +msgstr "Ins" + +msgid "key_full_Left" +msgstr "Doleva" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Num" + +msgid "key_full_PageDown" +msgstr "Page Down" + +msgid "key_full_PageUp" +msgstr "Page Up" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "Print Screen" + +msgid "key_full_Right" +msgstr "Doprava" + +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Mezerník" + +msgid "key_full_Tab" +msgstr "Tab" + +msgid "key_full_Up" +msgstr "Nahoru" + +msgid "key_full_Win" +msgstr "Win" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Kontext" + +msgid "key_short_Backspace" +msgstr "Backspace" + +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "Ctrl" + +msgid "key_short_Delete" +msgstr "Delete" + +msgid "key_short_Down" +msgstr "Dolů" + +msgid "key_short_End" +msgstr "End" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Home" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Doleva" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num" + +msgid "key_short_PageDown" +msgstr "PgDn" + +msgid "key_short_PageUp" +msgstr "PgUp" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "PrSc" + +msgid "key_short_Right" +msgstr "Doprava" + +msgid "key_short_Scroll" +msgstr "ScLck" + +msgid "key_short_Shift" +msgstr "Shift" + +msgid "key_short_Space" +msgstr "Mezera" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Nahoru" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "jeden řádek z jednoho" +msgstr[1] "%1 ze %2 řádků" +msgstr[2] "%1 z %2 řádků" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "jeden řádek" +msgstr[1] "%1 řádky" +msgstr[2] "%1 řádků" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.1/framework/de.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/framework/de.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/framework/de.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,285 @@ +# German +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-22 17:53+0100\n" +"Last-Translator: Thomas Herchenroeder <thron7 AT users DOT sourceforge DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "%1 does not fit %2." +msgstr "%1 passt nicht zu %2." + +msgid "%1 is not a color! %2" +msgstr "%1 ist keine Farbe! %2" + +msgid "%1 is not a number." +msgstr "%1 ist keine Nummer." + +msgid "%1 is not a string." +msgstr "%1 ist keine Zeichenkette." + +msgid "%1 is not an url." +msgstr "%1 ist keine URL." + +msgid "%1 is not in %2" +msgstr "%1 ist nicht in %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 liegt nicht im Intervall [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' ist keine Emailadresse." + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Cancel" +msgstr "Abbruch" + +msgid "Color Selector" +msgstr "Farbauswahl" + +msgid "Details" +msgstr "Details" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Vorheriger Monat" + +msgid "Last year" +msgstr "Vorheriges Jahr" + +msgid "Next month" +msgstr "Nächster Monat" + +msgid "Next year" +msgstr "Nächstes Jahr" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Öffne Farbauswahl" + +msgid "Presets" +msgstr "Voreinstellungen" + +msgid "Preview (Old/New)" +msgstr "Vorschau (alt/neu)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Spaltenbreite zurücksetzen" + +msgid "This field is required" +msgstr "Dieses Feld ist erforderlich" + +msgid "Visual" +msgstr "Visuell" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Kontextmenü" + +msgid "key_full_Backspace" +msgstr "Rücktaste" + +msgid "key_full_CapsLock" +msgstr "Feststelltaste" + +msgid "key_full_Control" +msgstr "Steuerung" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Entfernen" + +msgid "key_full_Down" +msgstr "Pfeil runter" + +msgid "key_full_End" +msgstr "Ende" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Position 1" + +msgid "key_full_Insert" +msgstr "Einfügen" + +msgid "key_full_Left" +msgstr "Pfeil links" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "NumLock" + +msgid "key_full_PageDown" +msgstr "Bild runter" + +msgid "key_full_PageUp" +msgstr "Bild hoch" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "Drucken" + +msgid "key_full_Right" +msgstr "Pfeil rechts" + +msgid "key_full_Scroll" +msgstr "Rollen" + +msgid "key_full_Shift" +msgstr "Umschalttaste" + +msgid "key_full_Space" +msgstr "Leertaste" + +msgid "key_full_Tab" +msgstr "Tabulator" + +msgid "key_full_Up" +msgstr "Pfeil hoch" + +msgid "key_full_Win" +msgstr "Windowstaste" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Kontext" + +msgid "key_short_Backspace" +msgstr "Rück" + +msgid "key_short_CapsLock" +msgstr "Feststell" + +msgid "key_short_Control" +msgstr "Strg" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Entf" + +msgid "key_short_Down" +msgstr "Runter" + +msgid "key_short_End" +msgstr "Ende" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Pos1" + +msgid "key_short_Insert" +msgstr "Einfg" + +msgid "key_short_Left" +msgstr "Links" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num" + +msgid "key_short_PageDown" +msgstr "Bild runter" + +msgid "key_short_PageUp" +msgstr "Bild hoch" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "Druck" + +msgid "key_short_Right" +msgstr "Rechts" + +msgid "key_short_Scroll" +msgstr "Rollen" + +msgid "key_short_Shift" +msgstr "Umschalt" + +msgid "key_short_Space" +msgstr "Leer" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Hoch" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "Eine von einer Zeile" +msgstr[1] "%1 von %2 Zeilen" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "Eine Zeile" +msgstr[1] "%1 Zeilen" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.1/framework/en.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/framework/en.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/framework/en.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,284 @@ +# English +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2007-01-23 17:53+0100\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ASCII\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "%1 does not fit %2." +msgstr "" + +msgid "%1 is not a color! %2" +msgstr "" + +msgid "%1 is not a number." +msgstr "" + +msgid "%1 is not a string." +msgstr "" + +msgid "%1 is not an url." +msgstr "" + +msgid "%1 is not in %2" +msgstr "" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "" + +msgid "'%1' is not an email address." +msgstr "" + +msgid "Automatic" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Color Selector" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "HSB" +msgstr "" + +msgid "Hex" +msgstr "" + +msgid "Last month" +msgstr "" + +msgid "Last year" +msgstr "" + +msgid "Next month" +msgstr "" + +msgid "Next year" +msgstr "" + +msgid "OK" +msgstr "" + +msgid "Open ColorSelector" +msgstr "" + +msgid "Presets" +msgstr "" + +msgid "Preview (Old/New)" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Reset column widths" +msgstr "" + +msgid "This field is required" +msgstr "" + +msgid "Visual" +msgstr "" + +msgid "key_full_Alt" +msgstr "" + +msgid "key_full_Apps" +msgstr "" + +msgid "key_full_Backspace" +msgstr "" + +msgid "key_full_CapsLock" +msgstr "" + +msgid "key_full_Control" +msgstr "" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "" + +msgid "key_full_Down" +msgstr "" + +msgid "key_full_End" +msgstr "" + +msgid "key_full_Enter" +msgstr "" + +msgid "key_full_Escape" +msgstr "" + +msgid "key_full_Home" +msgstr "" + +msgid "key_full_Insert" +msgstr "" + +msgid "key_full_Left" +msgstr "" + +msgid "key_full_Meta" +msgstr "" + +msgid "key_full_NumLock" +msgstr "" + +msgid "key_full_PageDown" +msgstr "" + +msgid "key_full_PageUp" +msgstr "" + +msgid "key_full_Pause" +msgstr "" + +msgid "key_full_PrintScreen" +msgstr "" + +msgid "key_full_Right" +msgstr "" + +msgid "key_full_Scroll" +msgstr "" + +msgid "key_full_Shift" +msgstr "" + +msgid "key_full_Space" +msgstr "" + +msgid "key_full_Tab" +msgstr "" + +msgid "key_full_Up" +msgstr "" + +msgid "key_full_Win" +msgstr "" + +msgid "key_short_Alt" +msgstr "" + +msgid "key_short_Apps" +msgstr "" + +msgid "key_short_Backspace" +msgstr "" + +msgid "key_short_CapsLock" +msgstr "" + +msgid "key_short_Control" +msgstr "" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "" + +msgid "key_short_Down" +msgstr "" + +msgid "key_short_End" +msgstr "" + +msgid "key_short_Enter" +msgstr "" + +msgid "key_short_Escape" +msgstr "" + +msgid "key_short_Home" +msgstr "" + +msgid "key_short_Insert" +msgstr "" + +msgid "key_short_Left" +msgstr "" + +msgid "key_short_Meta" +msgstr "" + +msgid "key_short_NumLock" +msgstr "" + +msgid "key_short_PageDown" +msgstr "" + +msgid "key_short_PageUp" +msgstr "" + +msgid "key_short_Pause" +msgstr "" + +msgid "key_short_PrintScreen" +msgstr "" + +msgid "key_short_Right" +msgstr "" + +msgid "key_short_Scroll" +msgstr "" + +msgid "key_short_Shift" +msgstr "" + +msgid "key_short_Space" +msgstr "" + +msgid "key_short_Tab" +msgstr "" + +msgid "key_short_Up" +msgstr "" + +msgid "key_short_Win" +msgstr "" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "" +msgstr[1] "" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "" +msgstr[1] "" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.1/framework/es.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/framework/es.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/framework/es.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,285 @@ +# Spanish +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-20 17:10+0200\n" +"PO-Revision-Date: 2010-04-26 19:59-0500\n" +"Last-Translator: Carsten Rammoser <carsten AT rammoser DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: GERMANY\n" + +msgid "%1 does not fit %2." +msgstr "%1 no corresponde con %2." + +msgid "%1 is not a color! %2" +msgstr "%1 no es un color! %2" + +msgid "%1 is not a number." +msgstr "%1 no es un número." + +msgid "%1 is not a string." +msgstr "%1 no es una cadena de caracteres." + +msgid "%1 is not an url." +msgstr "%1 no es un url." + +msgid "%1 is not in %2" +msgstr "%1 no se encuentra en %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 no se encuentra en el rango [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' no es un correo electrónico." + +msgid "Automatic" +msgstr "Automático" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Color Selector" +msgstr "Selector de color" + +msgid "Details" +msgstr "Detalles" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Último mes" + +msgid "Last year" +msgstr "Último año" + +msgid "Next month" +msgstr "Mes siguiente" + +msgid "Next year" +msgstr "Año siguiente" + +msgid "OK" +msgstr "Aceptar" + +msgid "Open ColorSelector" +msgstr "Abrir Selector de Color" + +msgid "Presets" +msgstr "Preselecciones" + +msgid "Preview (Old/New)" +msgstr "Vista previa (Viejo/Nuevo)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Reestablecer anchos de columnas" + +msgid "This field is required" +msgstr "Este cuadro es obligatorio" + +msgid "Visual" +msgstr "Visual" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Aplicaciones" + +msgid "key_full_Backspace" +msgstr "Retroceso" + +msgid "key_full_CapsLock" +msgstr "Bloqueo Mayúsculas" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Suprimir" + +msgid "key_full_Down" +msgstr "Flecha abajo" + +msgid "key_full_End" +msgstr "Fin" + +msgid "key_full_Enter" +msgstr "Intro" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Inicio" + +msgid "key_full_Insert" +msgstr "Insertar" + +msgid "key_full_Left" +msgstr "Flecha izquierda" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Bloqueo Numérico" + +msgid "key_full_PageDown" +msgstr "Avanzar Página" + +msgid "key_full_PageUp" +msgstr "Retroceder Página" + +msgid "key_full_Pause" +msgstr "Pausa" + +msgid "key_full_PrintScreen" +msgstr "Imprimir Pantalla" + +msgid "key_full_Right" +msgstr "Flecha derecha" + +msgid "key_full_Scroll" +msgstr "Bloq. Despl." + +msgid "key_full_Shift" +msgstr "Mayúscula" + +msgid "key_full_Space" +msgstr "Espacio" + +msgid "key_full_Tab" +msgstr "Tabulador" + +msgid "key_full_Up" +msgstr "Flecha arriba" + +msgid "key_full_Win" +msgstr "Windows" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Aplic" + +msgid "key_short_Backspace" +msgstr "Retroceso" + +msgid "key_short_CapsLock" +msgstr "BloqMayús" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Supr" + +msgid "key_short_Down" +msgstr "Abajo" + +msgid "key_short_End" +msgstr "Fin" + +msgid "key_short_Enter" +msgstr "Intro" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Inicio" + +msgid "key_short_Insert" +msgstr "Insert" + +msgid "key_short_Left" +msgstr "Izquierda" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "BloqNum" + +msgid "key_short_PageDown" +msgstr "AvPág" + +msgid "key_short_PageUp" +msgstr "RePág" + +msgid "key_short_Pause" +msgstr "Pausa" + +msgid "key_short_PrintScreen" +msgstr "ImprPant" + +msgid "key_short_Right" +msgstr "Derecha" + +msgid "key_short_Scroll" +msgstr "BloqDespl" + +msgid "key_short_Shift" +msgstr "Mayús" + +msgid "key_short_Space" +msgstr "Espacio" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Arriba" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "una de una fila" +msgstr[1] "%1 de %2 filas" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "una fila" +msgstr[1] "%1 filas" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.1/framework/fr.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/framework/fr.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/framework/fr.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,283 @@ +# French +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-27 15:58-0500\n" +"Last-Translator: Julien Raclot <julien DOT raclot AT 1and1 DOT fr>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "%1 does not fit %2." +msgstr "%1 ne correspond pas à %2." + +msgid "%1 is not a color! %2" +msgstr "%1 n'est pas une couleur ! %2" + +msgid "%1 is not a number." +msgstr "%1 n'est pas un chiffre." + +msgid "%1 is not a string." +msgstr "%1 n'est pas une chaîne de caractères." + +msgid "%1 is not an url." +msgstr "%1 n'est pas un URL." + +msgid "%1 is not in %2" +msgstr "%1 n'est pas dans %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 n'est pas dans l'intervalle [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1'n'est pas une adresse email." + +msgid "Automatic" +msgstr "Automatique" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Color Selector" +msgstr "Sélecteur de couleurs" + +msgid "Details" +msgstr "Détails" + +msgid "HSB" +msgstr "TSV" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Mois dernier" + +msgid "Last year" +msgstr "Année dernière" + +msgid "Next month" +msgstr "Mois prochain" + +msgid "Next year" +msgstr "Année prochaine" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Ouvrir le sélecteur de couleurs" + +msgid "Presets" +msgstr "Pré-réglages" + +msgid "Preview (Old/New)" +msgstr "Aperçu (Ancien/Nouveau)" + +msgid "RGB" +msgstr "RVB" + +msgid "Reset column widths" +msgstr "Réinitialiser la largeur des colonnes" + +msgid "This field is required" +msgstr "ce champ est requis" + +msgid "Visual" +msgstr "" + +msgid "key_full_Alt" +msgstr "Alternative" + +msgid "key_full_Apps" +msgstr "Application" + +msgid "key_full_Backspace" +msgstr "Effacement arrière" + +msgid "key_full_CapsLock" +msgstr "Verrouillage des Majuscule" + +msgid "key_full_Control" +msgstr "Contrôle" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Suppression" + +msgid "key_full_Down" +msgstr "Bas" + +msgid "key_full_End" +msgstr "Fin" + +msgid "key_full_Enter" +msgstr "Entrée" + +msgid "key_full_Escape" +msgstr "Échappement" + +msgid "key_full_Home" +msgstr "Origine" + +msgid "key_full_Insert" +msgstr "Insertion" + +msgid "key_full_Left" +msgstr "Gauche" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Verouillage Numérique" + +msgid "key_full_PageDown" +msgstr "Page Suivante" + +msgid "key_full_PageUp" +msgstr "Page Précédente" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "Impression de l'écran" + +msgid "key_full_Right" +msgstr "Droite" + +msgid "key_full_Scroll" +msgstr "Arrêt défilement" + +msgid "key_full_Shift" +msgstr "Majuscules" + +msgid "key_full_Space" +msgstr "Espace" + +msgid "key_full_Tab" +msgstr "Tabulation" + +msgid "key_full_Up" +msgstr "Haut" + +msgid "key_full_Win" +msgstr "Windows" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "App." + +msgid "key_short_Backspace" +msgstr "Effacement Arrière" + +msgid "key_short_CapsLock" +msgstr "Verr. Maj." + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Supp." + +msgid "key_short_Down" +msgstr "Bas" + +msgid "key_short_End" +msgstr "Fin" + +msgid "key_short_Enter" +msgstr "Entrée" + +msgid "key_short_Escape" +msgstr "Echap." + +msgid "key_short_Home" +msgstr "Orig." + +msgid "key_short_Insert" +msgstr "Ins." + +msgid "key_short_Left" +msgstr "Gauche" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Verr. Num." + +msgid "key_short_PageDown" +msgstr "Pg Suiv." + +msgid "key_short_PageUp" +msgstr "Pg Préc." + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "Imp. Écran" + +msgid "key_short_Right" +msgstr "Droite" + +msgid "key_short_Scroll" +msgstr "Arrêt Défil" + +msgid "key_short_Shift" +msgstr "Maj" + +msgid "key_short_Space" +msgstr "Espace" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Haut" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "ligne une de une" +msgstr[1] "ligne %1 de %2" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "une ligne" +msgstr[1] "%1 lignes" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.1/framework/it.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/framework/it.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/framework/it.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,285 @@ +# Italian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-01-15 10:00+0100\n" +"PO-Revision-Date: 2010-04-23 22:22+0200\n" +"Last-Translator: Alessandro Sala <alessandro DOT sala AT mclink DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "%1 does not fit %2." +msgstr "%1 non corrisponde a %2." + +msgid "%1 is not a color! %2" +msgstr "%1 non è un colore! %2" + +msgid "%1 is not a number." +msgstr "%1 non è un numero." + +msgid "%1 is not a string." +msgstr "%1 non è una stringa." + +msgid "%1 is not an url." +msgstr "%1 non è un url." + +msgid "%1 is not in %2" +msgstr "%1 non è contenuto in %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 non è compreso nell'intervallo [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' non è un indirizzo email." + +msgid "Automatic" +msgstr "Automatico" + +msgid "Cancel" +msgstr "Annulla" + +msgid "Color Selector" +msgstr "Selettore dei Colori" + +msgid "Details" +msgstr "Dettagli" + +msgid "HSB" +msgstr "TSL" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Mese precedente" + +msgid "Last year" +msgstr "Anno precedente" + +msgid "Next month" +msgstr "Mese successivo" + +msgid "Next year" +msgstr "Anno successivo" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Apri il Selettore dei Colori" + +msgid "Presets" +msgstr "Predefiniti" + +msgid "Preview (Old/New)" +msgstr "Anteprima (Vecchio/Nuovo)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Ripristina le larghezze delle colonne" + +msgid "This field is required" +msgstr "Questo campo è obbligatorio" + +msgid "Visual" +msgstr "Selezione visuale" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Tasto Menu" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Blocca Maiuscole" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Cancella" + +msgid "key_full_Down" +msgstr "Freccia Giù" + +msgid "key_full_End" +msgstr "Fine" + +msgid "key_full_Enter" +msgstr "Invio" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Inizio" + +msgid "key_full_Insert" +msgstr "Inserisci" + +msgid "key_full_Left" +msgstr "Freccia Sinistra" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Blocca Numeri" + +msgid "key_full_PageDown" +msgstr "Pagina Giù" + +msgid "key_full_PageUp" +msgstr "Pagina Su" + +msgid "key_full_Pause" +msgstr "Pausa" + +msgid "key_full_PrintScreen" +msgstr "Stampa Schermo" + +msgid "key_full_Right" +msgstr "Freccia Destra" + +msgid "key_full_Scroll" +msgstr "Blocca Scorrimento" + +msgid "key_full_Shift" +msgstr "Maiuscole" + +msgid "key_full_Space" +msgstr "Spazio" + +msgid "key_full_Tab" +msgstr "Tabulazione" + +msgid "key_full_Up" +msgstr "Freccia Su" + +msgid "key_full_Win" +msgstr "Tasto Windows" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Menu" + +msgid "key_short_Backspace" +msgstr "Backspace" + +msgid "key_short_CapsLock" +msgstr "Bloc Maiusc" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Canc" + +msgid "key_short_Down" +msgstr "Giù" + +msgid "key_short_End" +msgstr "Fine" + +msgid "key_short_Enter" +msgstr "Invio" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Inizio" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Sinistra" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Bloc Num" + +msgid "key_short_PageDown" +msgstr "Pag Giù" + +msgid "key_short_PageUp" +msgstr "Pag Su" + +msgid "key_short_Pause" +msgstr "Pausa" + +msgid "key_short_PrintScreen" +msgstr "Stamp" + +msgid "key_short_Right" +msgstr "Destra" + +msgid "key_short_Scroll" +msgstr "Bloc Scorr" + +msgid "key_short_Shift" +msgstr "Maiusc" + +msgid "key_short_Space" +msgstr "Spazio" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Su" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "una di una riga" +msgstr[1] "%1 di %2 righe" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "una riga" +msgstr[1] "%1 righe" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.1/framework/nb.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/framework/nb.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/framework/nb.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,284 @@ +# Norwegian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2011-03-16 17:16+0100\n" +"Last-Translator: Stefan Andersson <stefan DOT andersson AT live DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "%1 does not fit %2." +msgstr "%1 passer ikke inn %2." + +msgid "%1 is not a color! %2" +msgstr "%1 er ikke en farge! %2" + +msgid "%1 is not a number." +msgstr "%1 er ikke et tall." + +msgid "%1 is not a string." +msgstr "%1 er ikke en streng." + +msgid "%1 is not an url." +msgstr "%1 er ikke en internettadresse (URL)." + +msgid "%1 is not in %2" +msgstr "%1 er ikke i %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 er ikke i området fra [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' er ikke en e-postadresse." + +msgid "Automatic" +msgstr "Automatisk" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Color Selector" +msgstr "fargevelger" + +msgid "Details" +msgstr "Detaljer" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Siste måned" + +msgid "Last year" +msgstr "Siste år" + +msgid "Next month" +msgstr "Neste måned" + +msgid "Next year" +msgstr "Neste år" + +msgid "OK" +msgstr "Ok" + +msgid "Open ColorSelector" +msgstr "Åpne fargevelger" + +msgid "Presets" +msgstr "Forhåndssatte" + +msgid "Preview (Old/New)" +msgstr "Forhåndsvisning (gammel/ny)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Nullstill kolonnebreddene" + +msgid "This field is required" +msgstr "Dette feltet er påkrevd" + +msgid "Visual" +msgstr "Visuell" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Apps" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "CapsLock" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Delete" + +msgid "key_full_Down" +msgstr "Ned" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Home" + +msgid "key_full_Insert" +msgstr "Insert" + +msgid "key_full_Left" +msgstr "Venstre" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "NumLock" + +msgid "key_full_PageDown" +msgstr "PageDown" + +msgid "key_full_PageUp" +msgstr "PageUp" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "PrintScreen" + +msgid "key_full_Right" +msgstr "Høyre" + +msgid "key_full_Scroll" +msgstr "Scroll" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Space" + +msgid "key_full_Tab" +msgstr "Tab" + +msgid "key_full_Up" +msgstr "Opp" + +msgid "key_full_Win" +msgstr "Win" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Apps" + +msgid "key_short_Backspace" +msgstr "BS" + +msgid "key_short_CapsLock" +msgstr "CapsLock" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Del" + +msgid "key_short_Down" +msgstr "Ned" + +msgid "key_short_End" +msgstr "End" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Home" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Venstre" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num" + +msgid "key_short_PageDown" +msgstr "PgDn" + +msgid "key_short_PageUp" +msgstr "PgUp" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "PrnScn" + +msgid "key_short_Right" +msgstr "Høyre" + +msgid "key_short_Scroll" +msgstr "Scroll" + +msgid "key_short_Shift" +msgstr "Shift" + +msgid "key_short_Space" +msgstr "Space" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Opp" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "En av en rad" +msgstr[1] "%1 av %2 rader" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "en rad" +msgstr[1] "%1 rader" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.1/framework/nl.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/framework/nl.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/framework/nl.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,283 @@ +# Dutch +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-26 23:34+0100\n" +"Last-Translator: Isaak Malik <isooik AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "%1 does not fit %2." +msgstr "%1 past niet %2." + +msgid "%1 is not a color! %2" +msgstr "%1 is geen kleur! %2" + +msgid "%1 is not a number." +msgstr "%1 is geen nummer." + +msgid "%1 is not a string." +msgstr "%1 is geen string." + +msgid "%1 is not an url." +msgstr "%1 is geen url." + +msgid "%1 is not in %2" +msgstr "%1 is niet in %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 is niet in het bereik van [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' is geen email adres." + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Cancel" +msgstr "Annuleer" + +msgid "Color Selector" +msgstr "Kleur-instelling" + +msgid "Details" +msgstr "Details" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Laatste maand" + +msgid "Last year" +msgstr "Laatste jaar" + +msgid "Next month" +msgstr "Volgende maand" + +msgid "Next year" +msgstr "Volgend jaar" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Open Kleurkiezer" + +msgid "Presets" +msgstr "Voorkeuren" + +msgid "Preview (Old/New)" +msgstr "Voorbeeld (Oud/Nieuw)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Kolombreedte herstellen" + +msgid "This field is required" +msgstr "Dit veld is verplicht" + +msgid "Visual" +msgstr "Visueel" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Contextmenu" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Verwijderen" + +msgid "key_full_Down" +msgstr "Pijl omlaag" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Positie 1" + +msgid "key_full_Insert" +msgstr "Invoegen" + +msgid "key_full_Left" +msgstr "Pijl links" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Num Lock" + +msgid "key_full_PageDown" +msgstr "Volgende pagina" + +msgid "key_full_PageUp" +msgstr "Vorige pagina" + +msgid "key_full_Pause" +msgstr "Pauze" + +msgid "key_full_PrintScreen" +msgstr "Schermafbeelding" + +msgid "key_full_Right" +msgstr "Pijl rechts" + +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Spatiebalk" + +msgid "key_full_Tab" +msgstr "Tabulator" + +msgid "key_full_Up" +msgstr "Pijl omhoog" + +msgid "key_full_Win" +msgstr "Windowstoets" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Apps" + +msgid "key_short_Backspace" +msgstr "Backspace" + +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Del" + +msgid "key_short_Down" +msgstr "Omlaag" + +msgid "key_short_End" +msgstr "End" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Home" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Links" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num Lock" + +msgid "key_short_PageDown" +msgstr "PgDn" + +msgid "key_short_PageUp" +msgstr "PgUp" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "PrtSc" + +msgid "key_short_Right" +msgstr "Rechts" + +msgid "key_short_Scroll" +msgstr "Scroll Lock" + +msgid "key_short_Shift" +msgstr "Shift" + +msgid "key_short_Space" +msgstr "Spatie" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Omhoog" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "Een van een rij" +msgstr[1] "%1 van %2 rijen" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "een rij" +msgstr[1] "%1 rijen" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/2.1/framework/pl.po =================================================================== --- trunk/qooxdoo-contrib/Translation/2.1/framework/pl.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/2.1/framework/pl.po 2012-08-28 12:15:16 UTC (rev 21786) @@ -0,0 +1,284 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-22 17:53+0100\n" +"Last-Translator: Thomas Herchenroeder <thron7 AT users DOT sourceforge DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "%1 does not fit %2." +msgstr "%1 nie pasuje do %2." + +msgid "%1 is not a color! %2" +msgstr "%1 nie jest kolorem! %2" + +msgid "%1 is not a number." +msgstr "%1 nie jest liczbą." + +msgid "%1 is not a string." +msgstr "%1 nie jest ciągiem znaków." + +msgid "%1 is not an url." +msgstr "%1 nie jest URL." + +msgid "%1 is not in %2" +msgstr "%1 nie jest w %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 nie leży w przedziale [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' nie jest adresem e-mail." + +msgid "Automatic" +msgstr "Automatycznie" + +msgid "Cancel" +msgstr "Anuluj" + +msgid "Color Selector" +msgstr "Wybór kolorów" + +msgid "Details" +msgstr "Szczegóły" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "hex" + +msgid "Last month" +msgstr "Poprzedni miesiąc" + +msgid "Last year" +msgstr "Poprzedni rok" + +msgid "Next month" +msgstr "Następny miesiąc" + +msgid "Next year" +msgstr "Następny rok" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Otwórz wybór kolorów" + +msgid "Presets" +msgstr "Ustawienia wstępne" + +msgid "Preview (Old/New)" +msgstr "Podgląd (stary/nowy)" + +msgid "RGB" +msgstr "RGB" + +msgid "Reset column widths" +msgstr "Zresetuj szerokość kolumny" + +msgid "This field is required" +msgstr "To pole jest obowiązkowe" + +msgid "Visual" +msgstr "Wizualny" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Menu kontekstowe" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "key_full_Control_Mac" + +msgid "key_full_Delete" +msgstr "Delete" + +msgid "key_full_Down" +msgstr "Strzałka w dół" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Home" + +msgid "key_full_Insert" +msgstr "Insert" + +msgid "key_full_Left" +msgstr "Strzałka w lewo" + +msgid "key_full_Meta" +msgstr "Klawisz meta" + +msgid "key_full_NumLock" +msgstr "Num Lock" + +msgid "key_full_PageDown" +msgstr "Page Down" + +msgid "key_full_PageUp" +msgstr "Page Up" + +msgid "key_full_Pause" +msgstr "Break" + +msgid "key_full_PrintScreen" +msgstr "Print Screen" + +msgid "key_full_Right" +msgstr "Strzałka w prawo" + +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Spacja" + +msgid "key_full_Tab" +msgstr "Tabulator" + +msgid "key_full_Up" +msgstr "Strzałka w górę" + +msgid "key_full_Win" +msgstr "Klawisz Windows" + +msgid "key_short_Alt" +msgstr "Alt" +... [truncated message content] |
From: <th...@us...> - 2012-08-28 12:05:02
|
Revision: 21785 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21785&view=rev Author: thron7 Date: 2012-08-28 12:04:48 +0000 (Tue, 28 Aug 2012) Log Message: ----------- adding Czech translations from L.Slansky Added Paths: ----------- trunk/qooxdoo-contrib/Translation/0.7.4/feedreader/cs.po trunk/qooxdoo-contrib/Translation/0.7.4/framework/cs.po trunk/qooxdoo-contrib/Translation/0.7.4/showcase/cs.po trunk/qooxdoo-contrib/Translation/0.8/feedreader/cs.po trunk/qooxdoo-contrib/Translation/0.8/framework/cs.po trunk/qooxdoo-contrib/Translation/0.8.2/feedreader/cs.po trunk/qooxdoo-contrib/Translation/0.8.3/feedreader/cs.po trunk/qooxdoo-contrib/Translation/0.8.3/framework/cs.po trunk/qooxdoo-contrib/Translation/0.8.3/playground/cs.po trunk/qooxdoo-contrib/Translation/1.0/feedreader/cs.po trunk/qooxdoo-contrib/Translation/1.0/framework/cs.po trunk/qooxdoo-contrib/Translation/1.0/playground/cs.po trunk/qooxdoo-contrib/Translation/1.0.2/feedreader/cs.po trunk/qooxdoo-contrib/Translation/1.0.2/framework/cs.po trunk/qooxdoo-contrib/Translation/1.0.2/playground/cs.po trunk/qooxdoo-contrib/Translation/1.0.2/showcase/cs.po trunk/qooxdoo-contrib/Translation/1.1/feedreader/cs.po trunk/qooxdoo-contrib/Translation/1.1/framework/cs.po trunk/qooxdoo-contrib/Translation/1.1/playground/cs.po trunk/qooxdoo-contrib/Translation/1.1/showcase/cs.po trunk/qooxdoo-contrib/Translation/1.6/feedreader/cs.po trunk/qooxdoo-contrib/Translation/1.6/framework/cs.po trunk/qooxdoo-contrib/Translation/1.6/playground/cs.po trunk/qooxdoo-contrib/Translation/1.6/showcase/cs.po trunk/qooxdoo-contrib/Translation/2.0/feedreader/cs.po trunk/qooxdoo-contrib/Translation/2.0/framework/cs.po trunk/qooxdoo-contrib/Translation/2.0/playground/cs.po trunk/qooxdoo-contrib/Translation/2.0/showcase/cs.po Added: trunk/qooxdoo-contrib/Translation/0.7.4/feedreader/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/0.7.4/feedreader/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/0.7.4/feedreader/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,105 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-07-11 17:37+0200\n" +"PO-Revision-Date: 2012-08-27 10:40+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: source/class/feedreader/PreferenceWindow.js:34 +#: source/class/feedreader/view/ToolBar.js:69 +msgid "Preferences" +msgstr "Nastavení" + +#: source/class/feedreader/PreferenceWindow.js:71 +msgid "Theme" +msgstr "Téma" + +#: source/class/feedreader/PreferenceWindow.js:101 +msgid "Cancel" +msgstr "Storno" + +#: source/class/feedreader/PreferenceWindow.js:103 +msgid "OK" +msgstr "OK" + +#: source/class/feedreader/view/Article.js:133 +msgid "read more ..." +msgstr "čti více..." + +#: source/class/feedreader/view/Table.js:36 +msgid "Subject" +msgstr "Předmět" + +#: source/class/feedreader/view/Table.js:37 +msgid "Date" +msgstr "Datum" + +#: source/class/feedreader/view/Table.js:38 +msgid "ID" +msgstr "ID" + +#: source/class/feedreader/view/ToolBar.js:52 +msgid "Add feed" +msgstr "Přidat zdroj" + +#: source/class/feedreader/view/ToolBar.js:56 +msgid "Remove feed" +msgstr "Odstranit zdroj" + +#: source/class/feedreader/view/ToolBar.js:62 +msgid "Reload" +msgstr "Obnovit" + +#: source/class/feedreader/view/ToolBar.js:64 +msgid "(%1) Reload the feeds." +msgstr "(%1) Obnovit zdroje." + +#: source/class/feedreader/view/ToolBar.js:71 +msgid "Open preferences window." +msgstr "Otevřít okno nastavení." + +#: source/class/feedreader/view/ToolBar.js:79 +msgid "English" +msgstr "Angličtina" + +#: source/class/feedreader/view/ToolBar.js:80 +msgid "German" +msgstr "Němčina" + +#: source/class/feedreader/view/ToolBar.js:81 +msgid "Turkish" +msgstr "Turečtina" + +#: source/class/feedreader/view/ToolBar.js:82 +msgid "Italian" +msgstr "Italština" + +#: source/class/feedreader/view/ToolBar.js:83 +msgid "Spanish" +msgstr "Španělština" + +#: source/class/feedreader/view/ToolBar.js:84 +msgid "Swedish" +msgstr "Švédština" + +#: source/class/feedreader/view/ToolBar.js:85 +msgid "Russian" +msgstr "Ruština" + +#: source/class/feedreader/view/ToolBar.js:114 +msgid "Help" +msgstr "Nápověda" + +#: source/class/feedreader/view/Tree.js:27 +msgid "News feeds" +msgstr "Zdroje" Added: trunk/qooxdoo-contrib/Translation/0.7.4/framework/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/0.7.4/framework/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/0.7.4/framework/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,329 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-07-11 17:36+0200\n" +"PO-Revision-Date: 2012-08-27 10:41+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. TRANSLATION: short representation of key names +#: class/qx/locale/Key.js:77 +msgid "key_short_Backspace" +msgstr "Backspace" + +#: class/qx/locale/Key.js:78 +msgid "key_short_Tab" +msgstr "Tab" + +#: class/qx/locale/Key.js:79 +msgid "key_short_Space" +msgstr "Mezera" + +#: class/qx/locale/Key.js:80 +msgid "key_short_Enter" +msgstr "Enter" + +#: class/qx/locale/Key.js:81 +msgid "key_short_Shift" +msgstr "Shift" + +#: class/qx/locale/Key.js:82 +msgid "key_short_Control" +msgstr "Ctrl" + +#: class/qx/locale/Key.js:83 +msgid "key_short_Alt" +msgstr "Alt" + +#: class/qx/locale/Key.js:84 +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +#: class/qx/locale/Key.js:85 +msgid "key_short_Meta" +msgstr "Meta" + +#: class/qx/locale/Key.js:86 +msgid "key_short_Escape" +msgstr "Esc" + +#: class/qx/locale/Key.js:87 +msgid "key_short_Left" +msgstr "Doleva" + +#: class/qx/locale/Key.js:88 +msgid "key_short_Up" +msgstr "Nahoru" + +#: class/qx/locale/Key.js:89 +msgid "key_short_Right" +msgstr "Doprava" + +#: class/qx/locale/Key.js:90 +msgid "key_short_Down" +msgstr "Dolů" + +#: class/qx/locale/Key.js:91 +msgid "key_short_PageUp" +msgstr "PgUp" + +#: class/qx/locale/Key.js:92 +msgid "key_short_PageDown" +msgstr "PgDn" + +#: class/qx/locale/Key.js:93 +msgid "key_short_End" +msgstr "End" + +#: class/qx/locale/Key.js:94 +msgid "key_short_Home" +msgstr "Home" + +#: class/qx/locale/Key.js:95 +msgid "key_short_Insert" +msgstr "Ins" + +#: class/qx/locale/Key.js:96 +msgid "key_short_Delete" +msgstr "Delete" + +#: class/qx/locale/Key.js:97 +msgid "key_short_NumLock" +msgstr "Num" + +#: class/qx/locale/Key.js:98 +msgid "key_short_PrintScreen" +msgstr "PrSc" + +#: class/qx/locale/Key.js:99 +msgid "key_short_Scroll" +msgstr "ScLck" + +#: class/qx/locale/Key.js:100 +msgid "key_short_Pause" +msgstr "Pause" + +#: class/qx/locale/Key.js:101 +msgid "key_short_Win" +msgstr "Win" + +#: class/qx/locale/Key.js:102 +msgid "key_short_Apps" +msgstr "Kontext" + +#. TRANSLATION: full/long representation of key names +#: class/qx/locale/Key.js:105 +msgid "key_full_Backspace" +msgstr "Backspace" + +#: class/qx/locale/Key.js:106 +msgid "key_full_Tab" +msgstr "Tab" + +#: class/qx/locale/Key.js:107 +msgid "key_full_Space" +msgstr "Mezerník" + +#: class/qx/locale/Key.js:108 +msgid "key_full_Enter" +msgstr "Enter" + +#: class/qx/locale/Key.js:109 +msgid "key_full_Shift" +msgstr "Shift" + +#: class/qx/locale/Key.js:110 +msgid "key_full_Control" +msgstr "Ctrl" + +#: class/qx/locale/Key.js:111 +msgid "key_full_Alt" +msgstr "Alt" + +#: class/qx/locale/Key.js:112 +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +#: class/qx/locale/Key.js:113 +msgid "key_full_Meta" +msgstr "Meta" + +#: class/qx/locale/Key.js:114 +msgid "key_full_Escape" +msgstr "Esc" + +#: class/qx/locale/Key.js:115 +msgid "key_full_Left" +msgstr "Doleva" + +#: class/qx/locale/Key.js:116 +msgid "key_full_Up" +msgstr "Nahoru" + +#: class/qx/locale/Key.js:117 +msgid "key_full_Right" +msgstr "Doprava" + +#: class/qx/locale/Key.js:118 +msgid "key_full_Down" +msgstr "Dolů" + +#: class/qx/locale/Key.js:119 +msgid "key_full_PageUp" +msgstr "Page Up" + +#: class/qx/locale/Key.js:120 +msgid "key_full_PageDown" +msgstr "Page Down" + +#: class/qx/locale/Key.js:121 +msgid "key_full_End" +msgstr "End" + +#: class/qx/locale/Key.js:122 +msgid "key_full_Home" +msgstr "Home" + +#: class/qx/locale/Key.js:123 +msgid "key_full_Insert" +msgstr "Ins" + +#: class/qx/locale/Key.js:124 +msgid "key_full_Delete" +msgstr "Del" + +#: class/qx/locale/Key.js:125 +msgid "key_full_NumLock" +msgstr "Num" + +#: class/qx/locale/Key.js:126 +msgid "key_full_PrintScreen" +msgstr "Print Screen" + +#: class/qx/locale/Key.js:127 +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +#: class/qx/locale/Key.js:128 +msgid "key_full_Pause" +msgstr "Pause" + +#: class/qx/locale/Key.js:129 +msgid "key_full_Win" +msgstr "Win" + +#: class/qx/locale/Key.js:130 +msgid "key_full_Apps" +msgstr "Kontextové menu" + +#: class/qx/ui/component/ColorPopup.js:161 +msgid "Automatic" +msgstr "Automaticky" + +#: class/qx/ui/component/ColorPopup.js:229 +#: class/qx/ui/component/ColorSelector.js:413 +msgid "Preview (Old/New)" +msgstr "Náhled (starý/nový)" + +#: class/qx/ui/component/ColorPopup.js:262 +msgid "Open ColorSelector" +msgstr "Otevřít Výběr barvy" + +#: class/qx/ui/component/ColorPopup.js:283 +msgid "Color Selector" +msgstr "Výběr barvy" + +#: class/qx/ui/component/ColorSelector.js:229 +msgid "Cancel" +msgstr "Storno" + +#: class/qx/ui/component/ColorSelector.js:230 +msgid "OK" +msgstr "OK" + +#: class/qx/ui/component/ColorSelector.js:343 +msgid "Presets" +msgstr "Předvolby" + +#: class/qx/ui/component/ColorSelector.js:394 +msgid "Details" +msgstr "Podrobnosti" + +#: class/qx/ui/component/ColorSelector.js:448 +msgid "Hex" +msgstr "Hex" + +#: class/qx/ui/component/ColorSelector.js:477 +msgid "RGB" +msgstr "RGB" + +#: class/qx/ui/component/ColorSelector.js:512 +msgid "HSB" +msgstr "HSB" + +#: class/qx/ui/component/DateChooser.js:85 +msgid "Last year" +msgstr "Předchozí rok" + +#: class/qx/ui/component/DateChooser.js:92 +msgid "Last month" +msgstr "Předchozí měsíc" + +#: class/qx/ui/component/DateChooser.js:98 +msgid "Next month" +msgstr "Další měsíc" + +#: class/qx/ui/component/DateChooser.js:104 +msgid "Next year" +msgstr "Další rok" + +#: class/qx/ui/component/DateChooserButton.js:115 +msgid "Choose a date" +msgstr "Vyberte datum" + +#: class/qx/ui/form/ComboBoxEx.js:270 +msgid "Description" +msgstr "Popis" + +#: class/qx/ui/form/ComboBoxEx.js:270 +msgid "ID" +msgstr "ID" + +#: class/qx/ui/form/ComboBoxEx.js:954 +msgid "Search" +msgstr "Vyhledat" + +#: class/qx/ui/form/ComboBoxEx.js:1070 +msgid "Case sensitive" +msgstr "Rozlišuje velikost písmen" + +#: class/qx/ui/form/ComboBoxEx.js:1113 +msgid "Search next occurrence" +msgstr "Vyhledat další výskyt" + +#: class/qx/ui/form/ComboBoxEx.js:1157 +msgid "Search items in list" +msgstr "Vyhledat položky v seznamu" + +#: class/qx/ui/table/Table.js:1592 +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "jeden řádek" +msgstr[1] "%1 řádky" +msgstr[2] "%1 řádků" + +#: class/qx/ui/table/Table.js:1594 +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "jeden řádek z jednoho" +msgstr[1] "%1 ze %2 řádků" +msgstr[2] "%1 z %2 řádků" Added: trunk/qooxdoo-contrib/Translation/0.7.4/showcase/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/0.7.4/showcase/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/0.7.4/showcase/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,154 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-07-08 21:17+0200\n" +"PO-Revision-Date: 2012-08-27 10:43+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Team <you...@yo...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: source/class/showcase/Application.js:1361 +msgid "Choose a locale: " +msgstr "Vyberte jazyk:" + +#: source/class/showcase/Application.js:1394 +#: source/class/showcase/Application.js:1448 +msgid "Cut" +msgstr "Vyříznout" + +#: source/class/showcase/Application.js:1395 +#: source/class/showcase/Application.js:1450 +msgid "Paste" +msgstr "Vložit" + +#: source/class/showcase/Application.js:1396 +#: source/class/showcase/Application.js:1449 +msgid "Copy" +msgstr "Kopírovat" + +#: source/class/showcase/Application.js:1398 +msgid "Localized ComboBox:" +msgstr "Lokalizovaný výběrový box:" + +#: source/class/showcase/Application.js:1412 +msgid "A date: " +msgstr "Datum:" + +#: source/class/showcase/Application.js:1445 +msgid "Undo" +msgstr "Zpět" + +#: source/class/showcase/Application.js:1446 +msgid "Redo" +msgstr "Znovu" + +#: source/class/showcase/Application.js:1451 +msgid "Delete" +msgstr "Smazat" + +#: source/class/showcase/Application.js:1452 +msgid "Select All" +msgstr "Vybrat vše" + +#: source/class/showcase/Application.js:1454 +msgid "Search" +msgstr "Vyhledat" + +#: source/class/showcase/Application.js:1455 +msgid "Search Again" +msgstr "Vyhledat znovu" + +#: source/class/showcase/Application.js:1458 +msgid "Command Menu (keyboard shortcuts)" +msgstr "Nabídka příkazů (klávesových zkratek)" + +#: source/class/showcase/Application.js:1483 +msgid "Open Color Popup" +msgstr "Otevřít výběr barvy" + +#: source/class/showcase/Application.js:1498 +msgid "Basic Colors" +msgstr "Základní barvy" + +#: source/class/showcase/Application.js:1505 +msgid "Template Colors" +msgstr "Barvy šablony" + +#: source/class/showcase/Application.js:1511 +msgid "Recent Colors" +msgstr "Nedávné barvy" + +#: source/class/showcase/Application.js:1535 +msgid "Locale information" +msgstr "Informace o jazyce" + +#: source/class/showcase/Application.js:1569 +msgid "Locale:" +msgstr "Jazyk:" + +#: source/class/showcase/Application.js:1572 +msgid "Territory code:" +msgstr "Kód teritórie:" + +#: source/class/showcase/Application.js:1575 +msgid "Date format short:" +msgstr "Krátký formát data:" + +#: source/class/showcase/Application.js:1577 +msgid "Date short:" +msgstr "Krátké datum:" + +#: source/class/showcase/Application.js:1580 +msgid "Date format medium:" +msgstr "Střední formát data:" + +#: source/class/showcase/Application.js:1582 +msgid "Date medium:" +msgstr "Střední datum:" + +#: source/class/showcase/Application.js:1585 +msgid "Date format long:" +msgstr "Dlouhý formát data:" + +#: source/class/showcase/Application.js:1587 +msgid "Date long:" +msgstr "Dlouhé datum:" + +#: source/class/showcase/Application.js:1590 +msgid "Date format full:" +msgstr "Plný formát data:" + +#: source/class/showcase/Application.js:1592 +msgid "Date full:" +msgstr "Plné datum:" + +#: source/class/showcase/Application.js:1595 +msgid "Time format short:" +msgstr "Krátký formát času:" + +#: source/class/showcase/Application.js:1597 +msgid "Time short:" +msgstr "Krátký čas:" + +#: source/class/showcase/Application.js:1600 +msgid "Time format long:" +msgstr "Dlouhý formát času:" + +#: source/class/showcase/Application.js:1602 +msgid "Time long:" +msgstr "Dlouhý čas:" + +#: source/class/showcase/Application.js:1605 +msgid "Week start:" +msgstr "Začátek týdne:" + +#: source/class/showcase/Application.js:1608 +msgid "Format of %1:" +msgstr "Formát %1:" Added: trunk/qooxdoo-contrib/Translation/0.8/feedreader/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/0.8/feedreader/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/0.8/feedreader/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,106 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2012-08-27 10:44+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: feedreader/Application.js:347 +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (běží na qooxdoo)" + +#: feedreader/view/AddFeedWindow.js:49 +msgid "Add a feed" +msgstr "Přidat zdroj" + +#: feedreader/view/AddFeedWindow.js:86 +msgid "Feed Information" +msgstr "Informace o zdroji" + +#: feedreader/view/AddFeedWindow.js:93 +msgid "Title:" +msgstr "Název:" + +#: feedreader/view/AddFeedWindow.js:96 +msgid "URL:" +msgstr "URL:" + +#: feedreader/view/AddFeedWindow.js:108 +msgid "Add" +msgstr "Přidat" + +#: feedreader/view/AddFeedWindow.js:130 +msgid "Please enter a title." +msgstr "Vložte prosím název." + +#: feedreader/view/AddFeedWindow.js:138 +msgid "Please enter a url." +msgstr "Vložte prosím URL." + +#: feedreader/view/List.js:45 +msgid "Posts" +msgstr "Příspěvky" + +#: feedreader/view/PreferenceWindow.js:48 feedreader/view/ToolBar.js:86 +msgid "Preferences" +msgstr "Nastavení" + +#: feedreader/view/PreferenceWindow.js:85 +msgid "Language" +msgstr "Jazyk" + +#: feedreader/view/PreferenceWindow.js:121 +msgid "Cancel" +msgstr "Storno" + +#: feedreader/view/PreferenceWindow.js:124 +msgid "OK" +msgstr "OK" + +#: feedreader/view/ToolBar.js:60 +msgid "Add feed" +msgstr "Přidat zdroj" + +#: feedreader/view/ToolBar.js:64 +msgid "Remove feed" +msgstr "Odstranit zdroj" + +#: feedreader/view/ToolBar.js:74 +msgid "Reload" +msgstr "Obnovit" + +#: feedreader/view/ToolBar.js:77 +msgid "Reload the feeds. (%1)" +msgstr "Obnovit zdroje. (%1)" + +#: feedreader/view/ToolBar.js:88 +msgid "Open preferences window." +msgstr "Otevřít okno nastavení." + +#: feedreader/view/ToolBar.js:101 +msgid "Help" +msgstr "Nápověda" + +#: feedreader/view/Tree.js:65 +msgid "Static Feeds" +msgstr "Statické zdroje" + +#: feedreader/view/Tree.js:69 +msgid "User Feeds" +msgstr "Uživatelské zdroje" + +msgid "Classic" +msgstr "Klasické" + +msgid "Modern" +msgstr "Moderní" Added: trunk/qooxdoo-contrib/Translation/0.8/framework/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/0.8/framework/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/0.8/framework/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,353 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2012-08-27 10:45+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: qx/legacy/ui/component/ColorPopup.js:159 qx/ui/control/ColorPopup.js:148 +msgid "Automatic" +msgstr "Automaticky" + +#: qx/legacy/ui/component/ColorPopup.js:257 qx/ui/control/ColorPopup.js:228 +msgid "Open ColorSelector" +msgstr "Otevřít Výběr barvy" + +#: qx/legacy/ui/component/ColorPopup.js:277 qx/ui/control/ColorPopup.js:243 +msgid "Color Selector" +msgstr "Výběr barvy" + +#: qx/legacy/ui/component/ColorSelector.js:225 qx/ui/control/ColorPopup.js:257 +msgid "Cancel" +msgstr "Storno" + +#: qx/legacy/ui/component/ColorSelector.js:226 qx/ui/control/ColorPopup.js:262 +msgid "OK" +msgstr "OK" + +#: qx/legacy/ui/component/DateChooser.js:85 qx/ui/control/DateChooser.js:276 +msgid "Last year" +msgstr "Předchozí rok" + +#: qx/legacy/ui/component/DateChooser.js:92 qx/ui/control/DateChooser.js:284 +msgid "Last month" +msgstr "Předchozí měsíc" + +#: qx/legacy/ui/component/DateChooser.js:98 qx/ui/control/DateChooser.js:292 +msgid "Next month" +msgstr "Další měsíc" + +#: qx/legacy/ui/component/DateChooser.js:104 qx/ui/control/DateChooser.js:300 +msgid "Next year" +msgstr "Další rok" + +#: qx/legacy/ui/component/DateChooserButton.js:61 +msgid "Choose a date" +msgstr "Vyberte datum" + +#: qx/legacy/ui/form/ComboBoxEx.js:269 +msgid "Description" +msgstr "Popis" + +#: qx/legacy/ui/form/ComboBoxEx.js:269 +msgid "ID" +msgstr "ID" + +#: qx/legacy/ui/form/ComboBoxEx.js:929 +msgid "Search" +msgstr "Vyhledat" + +#: qx/legacy/ui/form/ComboBoxEx.js:1042 +msgid "Case sensitive" +msgstr "Rozlišuje velikost písmen" + +#: qx/legacy/ui/form/ComboBoxEx.js:1084 +msgid "Search next occurrence" +msgstr "Vyhledat další výskyt" + +#: qx/legacy/ui/form/ComboBoxEx.js:1128 +msgid "Search items in list" +msgstr "Vyhledat položky v seznamu" + +#: qx/legacy/ui/table/Table.js:1541 qx/ui/table/Table.js:1513 +msgid "one row" +msgstr "jeden řádek" + +#: qx/legacy/ui/table/Table.js:1543 qx/ui/table/Table.js:1515 +msgid "one of one row" +msgstr "jeden řádek z jednoho" + +#: qx/legacy/ui/table/columnmodel/Resize.js:205 +#: qx/ui/table/columnmodel/Resize.js:209 +msgid "Reset column widths" +msgstr "Obnovit šířky sloupců" + +#: qx/locale/Key.js:76 +msgid "key_short_Backspace" +msgstr "Backspace" + +#: qx/locale/Key.js:77 +msgid "key_short_Tab" +msgstr "Tab" + +#: qx/locale/Key.js:78 +msgid "key_short_Space" +msgstr "Mezera" + +#: qx/locale/Key.js:79 +msgid "key_short_Enter" +msgstr "Enter" + +#: qx/locale/Key.js:80 +msgid "key_short_Shift" +msgstr "Shift" + +#: qx/locale/Key.js:81 +msgid "key_short_Control" +msgstr "Ctrl" + +#: qx/locale/Key.js:82 +msgid "key_short_Alt" +msgstr "Alt" + +#: qx/locale/Key.js:83 +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +#: qx/locale/Key.js:84 +msgid "key_short_Meta" +msgstr "Meta" + +#: qx/locale/Key.js:85 +msgid "key_short_Escape" +msgstr "Esc" + +#: qx/locale/Key.js:86 +msgid "key_short_Left" +msgstr "Doleva" + +#: qx/locale/Key.js:87 +msgid "key_short_Up" +msgstr "Nahoru" + +#: qx/locale/Key.js:88 +msgid "key_short_Right" +msgstr "Doprava" + +#: qx/locale/Key.js:89 +msgid "key_short_Down" +msgstr "Dolů" + +#: qx/locale/Key.js:90 +msgid "key_short_PageUp" +msgstr "PgUp" + +#: qx/locale/Key.js:91 +msgid "key_short_PageDown" +msgstr "PgDn" + +#: qx/locale/Key.js:92 +msgid "key_short_End" +msgstr "End" + +#: qx/locale/Key.js:93 +msgid "key_short_Home" +msgstr "Home" + +#: qx/locale/Key.js:94 +msgid "key_short_Insert" +msgstr "Ins" + +#: qx/locale/Key.js:95 +msgid "key_short_Delete" +msgstr "Delete" + +#: qx/locale/Key.js:96 +msgid "key_short_NumLock" +msgstr "Num" + +#: qx/locale/Key.js:97 +msgid "key_short_PrintScreen" +msgstr "PrSc" + +#: qx/locale/Key.js:98 +msgid "key_short_Scroll" +msgstr "ScLck" + +#: qx/locale/Key.js:99 +msgid "key_short_Pause" +msgstr "Pause" + +#: qx/locale/Key.js:100 +msgid "key_short_Win" +msgstr "Win" + +#: qx/locale/Key.js:101 +msgid "key_short_Apps" +msgstr "Kontext" + +#: qx/locale/Key.js:104 +msgid "key_full_Backspace" +msgstr "Backspace" + +#: qx/locale/Key.js:105 +msgid "key_full_Tab" +msgstr "Tab" + +#: qx/locale/Key.js:106 +msgid "key_full_Space" +msgstr "Mezerník" + +#: qx/locale/Key.js:107 +msgid "key_full_Enter" +msgstr "Enter" + +#: qx/locale/Key.js:108 +msgid "key_full_Shift" +msgstr "Shift" + +#: qx/locale/Key.js:109 +msgid "key_full_Control" +msgstr "Ctrl" + +#: qx/locale/Key.js:110 +msgid "key_full_Alt" +msgstr "Alt" + +#: qx/locale/Key.js:111 +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +#: qx/locale/Key.js:112 +msgid "key_full_Meta" +msgstr "Meta" + +#: qx/locale/Key.js:113 +msgid "key_full_Escape" +msgstr "Esc" + +#: qx/locale/Key.js:114 +msgid "key_full_Left" +msgstr "Doleva" + +#: qx/locale/Key.js:115 +msgid "key_full_Up" +msgstr "Nahoru" + +#: qx/locale/Key.js:116 +msgid "key_full_Right" +msgstr "Doprava" + +#: qx/locale/Key.js:117 +msgid "key_full_Down" +msgstr "Dolů" + +#: qx/locale/Key.js:118 +msgid "key_full_PageUp" +msgstr "Page Up" + +#: qx/locale/Key.js:119 +msgid "key_full_PageDown" +msgstr "Page Down" + +#: qx/locale/Key.js:120 +msgid "key_full_End" +msgstr "End" + +#: qx/locale/Key.js:121 +msgid "key_full_Home" +msgstr "Home" + +#: qx/locale/Key.js:122 +msgid "key_full_Insert" +msgstr "Ins" + +#: qx/locale/Key.js:123 +msgid "key_full_Delete" +msgstr "Del" + +#: qx/locale/Key.js:124 +msgid "key_full_NumLock" +msgstr "Num" + +#: qx/locale/Key.js:125 +msgid "key_full_PrintScreen" +msgstr "Print Screen" + +#: qx/locale/Key.js:126 +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +#: qx/locale/Key.js:127 +msgid "key_full_Pause" +msgstr "Pause" + +#: qx/locale/Key.js:128 +msgid "key_full_Win" +msgstr "Win" + +#: qx/locale/Key.js:129 +msgid "key_full_Apps" +msgstr "Kontextové menu" + +#: qx/test/locale/Locale.js:72 qx/test/locale/Locale.js:75 +#: qx/test/locale/Locale.js:78 +msgid "test One car" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:62 qx/test/locale/Locale.js:60 +msgid "test one" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:70 qx/test/locale/Locale.js:64 +#: qx/test/locale/Locale.js:68 +msgid "test Hello %1!" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:70 qx/test/locale/Locale.js:68 +msgid "test Jonny" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:76 +msgid "test two" +msgstr "" + +#: qx/ui/control/ColorSelector.js:275 +#: qx/legacy/ui/component/ColorSelector.js:335 +msgid "Presets" +msgstr "Předvolby" + +#: qx/ui/control/ColorSelector.js:301 +#: qx/legacy/ui/component/ColorSelector.js:385 +msgid "Details" +msgstr "Podrobnosti" + +#: qx/ui/control/ColorSelector.js:312 qx/legacy/ui/component/ColorPopup.js:225 +#: qx/legacy/ui/component/ColorSelector.js:403 qx/ui/control/ColorPopup.js:199 +msgid "Preview (Old/New)" +msgstr "Náhled (starý/nový)" + +#: qx/ui/control/ColorSelector.js:331 +#: qx/legacy/ui/component/ColorSelector.js:437 +msgid "Hex" +msgstr "Hex" + +#: qx/ui/control/ColorSelector.js:351 +#: qx/legacy/ui/component/ColorSelector.js:465 +msgid "RGB" +msgstr "RGB" + +#: qx/ui/control/ColorSelector.js:383 +#: qx/legacy/ui/component/ColorSelector.js:499 +msgid "HSB" +msgstr "HSB" Added: trunk/qooxdoo-contrib/Translation/0.8.2/feedreader/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/0.8.2/feedreader/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/0.8.2/feedreader/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,100 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2012-08-27 10:48+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: feedreader/Application.js:117 +msgid "Static Feeds" +msgstr "Statické zdroje" + +#: feedreader/Application.js:147 +msgid "User Feeds" +msgstr "Uživatelské zdroje" + +#: feedreader/Application.js:506 +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (běží na qooxdoo)" + +#: feedreader/view/AddFeedWindow.js:49 +msgid "Add a feed" +msgstr "Přidat zdroj" + +#: feedreader/view/AddFeedWindow.js:86 +msgid "Feed Information" +msgstr "Informace o zdroji" + +#: feedreader/view/AddFeedWindow.js:93 +msgid "Title:" +msgstr "Název:" + +#: feedreader/view/AddFeedWindow.js:96 +msgid "URL:" +msgstr "URL:" + +#: feedreader/view/AddFeedWindow.js:108 +msgid "Add" +msgstr "Přidat" + +#: feedreader/view/AddFeedWindow.js:130 +msgid "Please enter a title." +msgstr "Vložte prosím název." + +#: feedreader/view/AddFeedWindow.js:138 +msgid "Please enter a url." +msgstr "Vložte prosím URL." + +#: feedreader/view/List.js:50 +msgid "Posts" +msgstr "Příspěvky" + +#: feedreader/view/PreferenceWindow.js:48 feedreader/view/ToolBar.js:87 +msgid "Preferences" +msgstr "Nastavení" + +#: feedreader/view/PreferenceWindow.js:85 +msgid "Language" +msgstr "Jazyk" + +#: feedreader/view/PreferenceWindow.js:123 +msgid "Cancel" +msgstr "Storno" + +#: feedreader/view/PreferenceWindow.js:126 +msgid "OK" +msgstr "OK" + +#: feedreader/view/ToolBar.js:60 +msgid "Add feed" +msgstr "Přidat zdroj" + +#: feedreader/view/ToolBar.js:64 +msgid "Remove feed" +msgstr "Odstranit zdroj" + +#: feedreader/view/ToolBar.js:75 +msgid "Reload" +msgstr "Obnovit" + +#: feedreader/view/ToolBar.js:78 +msgid "Reload the feeds. (%1)" +msgstr "Obnovit zdroje. (%1)" + +#: feedreader/view/ToolBar.js:89 +msgid "Open preferences window." +msgstr "Otevřít okno nastavení." + +#: feedreader/view/ToolBar.js:102 +msgid "Help" +msgstr "Nápověda" Added: trunk/qooxdoo-contrib/Translation/0.8.3/feedreader/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/0.8.3/feedreader/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/0.8.3/feedreader/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,100 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2012-08-27 10:48+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: feedreader/Application.js:138 +msgid "Static Feeds" +msgstr "Statické zdroje" + +#: feedreader/Application.js:168 +msgid "User Feeds" +msgstr "Uživatelské zdroje" + +#: feedreader/Application.js:530 +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (běží na qooxdoo)" + +#: feedreader/view/AddFeedWindow.js:49 +msgid "Add a feed" +msgstr "Přidat zdroj" + +#: feedreader/view/AddFeedWindow.js:90 +msgid "Feed Information" +msgstr "Informace o zdroji" + +#: feedreader/view/AddFeedWindow.js:97 +msgid "Title:" +msgstr "Název:" + +#: feedreader/view/AddFeedWindow.js:100 +msgid "URL:" +msgstr "URL:" + +#: feedreader/view/AddFeedWindow.js:112 +msgid "Add" +msgstr "Přidat" + +#: feedreader/view/AddFeedWindow.js:136 +msgid "Please enter a title." +msgstr "Vložte prosím název." + +#: feedreader/view/AddFeedWindow.js:144 +msgid "Please enter a url." +msgstr "Vložte prosím URL." + +#: feedreader/view/List.js:50 +msgid "Posts" +msgstr "Příspěvky" + +#: feedreader/view/PreferenceWindow.js:48 feedreader/view/ToolBar.js:87 +msgid "Preferences" +msgstr "Nastavení" + +#: feedreader/view/PreferenceWindow.js:85 +msgid "Language" +msgstr "Jazyk" + +#: feedreader/view/PreferenceWindow.js:137 +msgid "Cancel" +msgstr "Storno" + +#: feedreader/view/PreferenceWindow.js:140 +msgid "OK" +msgstr "OK" + +#: feedreader/view/ToolBar.js:60 +msgid "Add feed" +msgstr "Přidat zdroj" + +#: feedreader/view/ToolBar.js:64 +msgid "Remove feed" +msgstr "Odstranit zdroj" + +#: feedreader/view/ToolBar.js:75 +msgid "Reload" +msgstr "Obnovit" + +#: feedreader/view/ToolBar.js:78 +msgid "Reload the feeds. (%1)" +msgstr "Obnovit zdroje. (%1)" + +#: feedreader/view/ToolBar.js:89 +msgid "Open preferences window." +msgstr "Otevřít okno nastavení." + +#: feedreader/view/ToolBar.js:102 +msgid "Help" +msgstr "Nápověda" Added: trunk/qooxdoo-contrib/Translation/0.8.3/framework/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/0.8.3/framework/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/0.8.3/framework/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,365 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2012-08-27 10:50+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: qx/legacy/ui/component/ColorPopup.js:159 qx/ui/control/ColorPopup.js:138 +msgid "Automatic" +msgstr "Automaticky" + +#: qx/legacy/ui/component/ColorPopup.js:257 qx/ui/control/ColorPopup.js:146 +msgid "Open ColorSelector" +msgstr "Otevřít Výběr barvy" + +#: qx/legacy/ui/component/ColorPopup.js:277 qx/ui/control/ColorPopup.js:233 +msgid "Color Selector" +msgstr "Výběr barvy" + +#: qx/legacy/ui/component/ColorSelector.js:225 qx/ui/control/ColorPopup.js:176 +msgid "Cancel" +msgstr "Storno" + +#: qx/legacy/ui/component/ColorSelector.js:226 qx/ui/control/ColorPopup.js:171 +msgid "OK" +msgstr "OK" + +#: qx/legacy/ui/component/DateChooserButton.js:61 +msgid "Choose a date" +msgstr "Vyberte datum" + +#: qx/legacy/ui/form/ComboBoxEx.js:269 +msgid "Description" +msgstr "Popis" + +#: qx/legacy/ui/form/ComboBoxEx.js:269 +msgid "ID" +msgstr "ID" + +#: qx/legacy/ui/form/ComboBoxEx.js:929 +msgid "Search" +msgstr "Vyhledat" + +#: qx/legacy/ui/form/ComboBoxEx.js:1042 +msgid "Case sensitive" +msgstr "Rozlišuje velikost písmen" + +#: qx/legacy/ui/form/ComboBoxEx.js:1084 +msgid "Search next occurrence" +msgstr "Vyhledat další výskyt" + +#: qx/legacy/ui/form/ComboBoxEx.js:1128 +msgid "Search items in list" +msgstr "Vyhledat položky v seznamu" + +#: qx/legacy/ui/table/Table.js:1541 qx/ui/table/Table.js:1752 +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "jeden řádek" +msgstr[1] "%1 řádky" +msgstr[2] "%1 řádků" + +#: qx/legacy/ui/table/Table.js:1543 qx/ui/table/Table.js:1754 +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "jeden řádek z jednoho" +msgstr[1] "%1 ze %2 řádků" +msgstr[2] "%1 z %2 řádků" + +#: qx/locale/Key.js:76 +msgid "key_short_Backspace" +msgstr "Backspace" + +#: qx/locale/Key.js:77 +msgid "key_short_Tab" +msgstr "Tab" + +#: qx/locale/Key.js:78 +msgid "key_short_Space" +msgstr "Mezera" + +#: qx/locale/Key.js:79 +msgid "key_short_Enter" +msgstr "Enter" + +#: qx/locale/Key.js:80 +msgid "key_short_Shift" +msgstr "Shift" + +#: qx/locale/Key.js:81 +msgid "key_short_Control" +msgstr "Ctrl" + +#: qx/locale/Key.js:82 +msgid "key_short_Alt" +msgstr "Alt" + +#: qx/locale/Key.js:83 +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +#: qx/locale/Key.js:84 +msgid "key_short_Meta" +msgstr "Meta" + +#: qx/locale/Key.js:85 +msgid "key_short_Escape" +msgstr "Esc" + +#: qx/locale/Key.js:86 +msgid "key_short_Left" +msgstr "Doleva" + +#: qx/locale/Key.js:87 +msgid "key_short_Up" +msgstr "Nahoru" + +#: qx/locale/Key.js:88 +msgid "key_short_Right" +msgstr "Doprava" + +#: qx/locale/Key.js:89 +msgid "key_short_Down" +msgstr "Dolů" + +#: qx/locale/Key.js:90 +msgid "key_short_PageUp" +msgstr "PgUp" + +#: qx/locale/Key.js:91 +msgid "key_short_PageDown" +msgstr "PgDn" + +#: qx/locale/Key.js:92 +msgid "key_short_End" +msgstr "End" + +#: qx/locale/Key.js:93 +msgid "key_short_Home" +msgstr "Home" + +#: qx/locale/Key.js:94 +msgid "key_short_Insert" +msgstr "Ins" + +#: qx/locale/Key.js:95 +msgid "key_short_Delete" +msgstr "Delete" + +#: qx/locale/Key.js:96 +msgid "key_short_NumLock" +msgstr "Num" + +#: qx/locale/Key.js:97 +msgid "key_short_PrintScreen" +msgstr "PrSc" + +#: qx/locale/Key.js:98 +msgid "key_short_Scroll" +msgstr "ScLck" + +#: qx/locale/Key.js:99 +msgid "key_short_Pause" +msgstr "Pause" + +#: qx/locale/Key.js:100 +msgid "key_short_Win" +msgstr "Win" + +#: qx/locale/Key.js:101 +msgid "key_short_Apps" +msgstr "Kontext" + +#: qx/locale/Key.js:104 +msgid "key_full_Backspace" +msgstr "Backspace" + +#: qx/locale/Key.js:105 +msgid "key_full_Tab" +msgstr "Tab" + +#: qx/locale/Key.js:106 +msgid "key_full_Space" +msgstr "Mezerník" + +#: qx/locale/Key.js:107 +msgid "key_full_Enter" +msgstr "Enter" + +#: qx/locale/Key.js:108 +msgid "key_full_Shift" +msgstr "Shift" + +#: qx/locale/Key.js:109 +msgid "key_full_Control" +msgstr "Ctrl" + +#: qx/locale/Key.js:110 +msgid "key_full_Alt" +msgstr "Alt" + +#: qx/locale/Key.js:111 +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +#: qx/locale/Key.js:112 +msgid "key_full_Meta" +msgstr "Meta" + +#: qx/locale/Key.js:113 +msgid "key_full_Escape" +msgstr "Esc" + +#: qx/locale/Key.js:114 +msgid "key_full_Left" +msgstr "Doleva" + +#: qx/locale/Key.js:115 +msgid "key_full_Up" +msgstr "Nahoru" + +#: qx/locale/Key.js:116 +msgid "key_full_Right" +msgstr "Doprava" + +#: qx/locale/Key.js:117 +msgid "key_full_Down" +msgstr "Dolů" + +#: qx/locale/Key.js:118 +msgid "key_full_PageUp" +msgstr "Page Up" + +#: qx/locale/Key.js:119 +msgid "key_full_PageDown" +msgstr "Page Down" + +#: qx/locale/Key.js:120 +msgid "key_full_End" +msgstr "End" + +#: qx/locale/Key.js:121 +msgid "key_full_Home" +msgstr "Home" + +#: qx/locale/Key.js:122 +msgid "key_full_Insert" +msgstr "Ins" + +#: qx/locale/Key.js:123 +msgid "key_full_Delete" +msgstr "Del" + +#: qx/locale/Key.js:124 +msgid "key_full_NumLock" +msgstr "Num" + +#: qx/locale/Key.js:125 +msgid "key_full_PrintScreen" +msgstr "Print Screen" + +#: qx/locale/Key.js:126 +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +#: qx/locale/Key.js:127 +msgid "key_full_Pause" +msgstr "Pause" + +#: qx/locale/Key.js:128 +msgid "key_full_Win" +msgstr "Win" + +#: qx/locale/Key.js:129 +msgid "key_full_Apps" +msgstr "Kontextové menu" + +#: qx/test/locale/Locale.js:72 qx/test/locale/Locale.js:75 +#: qx/test/locale/Locale.js:78 +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +#: qx/test/ui/LocaleSwitch.js:85 qx/test/locale/Locale.js:60 +msgid "test one" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:93 qx/test/locale/Locale.js:64 +#: qx/test/locale/Locale.js:68 +msgid "test Hello %1!" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:93 qx/test/locale/Locale.js:68 +msgid "test Jonny" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:99 +msgid "test two" +msgstr "" + +#: qx/ui/control/ColorSelector.js:232 +msgid "Visual" +msgstr "Vizuální" + +#: qx/ui/control/ColorSelector.js:292 +#: qx/legacy/ui/component/ColorSelector.js:335 +msgid "Presets" +msgstr "Předvolby" + +#: qx/ui/control/ColorSelector.js:323 +#: qx/legacy/ui/component/ColorSelector.js:385 +msgid "Details" +msgstr "Podrobnosti" + +#: qx/ui/control/ColorSelector.js:334 qx/legacy/ui/component/ColorPopup.js:225 +#: qx/legacy/ui/component/ColorSelector.js:403 qx/ui/control/ColorPopup.js:153 +msgid "Preview (Old/New)" +msgstr "Náhled (starý/nový)" + +#: qx/ui/control/ColorSelector.js:352 +#: qx/legacy/ui/component/ColorSelector.js:437 +msgid "Hex" +msgstr "Hex" + +#: qx/ui/control/ColorSelector.js:374 +#: qx/legacy/ui/component/ColorSelector.js:465 +msgid "RGB" +msgstr "RGB" + +#: qx/ui/control/ColorSelector.js:406 +#: qx/legacy/ui/component/ColorSelector.js:499 +msgid "HSB" +msgstr "HSB" + +#: qx/ui/control/DateChooser.js:253 qx/legacy/ui/component/DateChooser.js:85 +msgid "Last year" +msgstr "Předchozí rok" + +#: qx/ui/control/DateChooser.js:265 qx/legacy/ui/component/DateChooser.js:92 +msgid "Last month" +msgstr "Předchozí měsíc" + +#: qx/ui/control/DateChooser.js:277 qx/legacy/ui/component/DateChooser.js:98 +msgid "Next month" +msgstr "Další měsíc" + +#: qx/ui/control/DateChooser.js:289 qx/legacy/ui/component/DateChooser.js:104 +msgid "Next year" +msgstr "Další rok" + +#: qx/ui/table/columnmodel/Resize.js:214 +#: qx/legacy/ui/table/columnmodel/Resize.js:203 +msgid "Reset column widths" +msgstr "Obnovit šířky sloupců" Added: trunk/qooxdoo-contrib/Translation/0.8.3/playground/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/0.8.3/playground/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/0.8.3/playground/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,93 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: 1.0\n" +"Report-Msgid-Bugs-To: yo...@qo...\n" +"POT-Creation-Date: 2007-10-18 14:00+0100\n" +"PO-Revision-Date: 2012-08-27 10:51+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Team <you...@qo...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: playground/Application.js:314 +msgid "Source Code" +msgstr "Zdrojový kód" + +#: playground/Application.js:444 +msgid "%1 (modified)" +msgstr "%1 (změněno)" + +#: playground/Application.js:488 +msgid "Starting application '" +msgstr "Startování aplikace '" + +#: playground/Application.js:491 +msgid "Successfully started." +msgstr "Úspěšný start." + +#: playground/Application.js:511 +msgid "" +"Unfortunately, an unrecoverable internal error was caused by your code." +"\\nThis may prevent the playground application to run properly.\\nPlease " +"copy your code, restart the playground and paste your code.\\n\\n" +msgstr "" +"Naneštěstí se v kódu vyskytla chyba, ze které se nelze vzpamatovat.\\nToto " +"může bránit aplikaci pískoviště v řádném fungování.\\nZkopírujte prosím Váš " +"kód, restartujte pískoviště a vložte kód.\\n\\n" + +#: playground/Application.js:745 playground/Application.js:855 +msgid "Log" +msgstr "Log" + +#: playground/Application.js:798 +msgid "Playground" +msgstr "Pískoviště" + +#: playground/Application.js:801 +msgid "qooxdoo %1" +msgstr "qooxdoo %1" + +#: playground/Application.js:825 +msgid "Run" +msgstr "Spustit" + +#: playground/Application.js:829 +msgid "Run the source code" +msgstr "Spustit zdrojový kód" + +#: playground/Application.js:832 +msgid "Samples" +msgstr "Příklady" + +#: playground/Application.js:835 +msgid "Select a sample" +msgstr "Vyberte příklad" + +#: playground/Application.js:838 +msgid "Syntax Highlighting" +msgstr "Zvýrazňování syntaxe" + +#: playground/Application.js:858 +msgid "Show log output" +msgstr "Zobrazit výstup logů" + +#: playground/Application.js:861 +msgid "API Viewer" +msgstr "Prohlížeč API" + +#: playground/Application.js:864 +msgid "Open the qooxdoo API Viewer" +msgstr "Otevřít Prohlížeč API qooxdoo" + +#: playground/Application.js:867 +msgid "Manual" +msgstr "Manuál" + +#: playground/Application.js:870 +msgid "Open the qooxdoo Manual" +msgstr "Otevřít manuál qooxdoo" Added: trunk/qooxdoo-contrib/Translation/1.0/feedreader/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/1.0/feedreader/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/1.0/feedreader/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,100 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2012-08-27 10:59+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: feedreader/Application.js:138 +msgid "Static Feeds" +msgstr "Statické zdroje" + +#: feedreader/Application.js:168 +msgid "User Feeds" +msgstr "Uživatelské zdroje" + +#: feedreader/Application.js:526 +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (běží na qooxdoo)" + +#: feedreader/view/AddFeedWindow.js:49 +msgid "Add a feed" +msgstr "Přidat zdroj" + +#: feedreader/view/AddFeedWindow.js:90 +msgid "Feed Information" +msgstr "Informace o zdroji" + +#: feedreader/view/AddFeedWindow.js:97 +msgid "Title:" +msgstr "Název:" + +#: feedreader/view/AddFeedWindow.js:100 +msgid "URL:" +msgstr "URL:" + +#: feedreader/view/AddFeedWindow.js:112 +msgid "Add" +msgstr "Přidat" + +#: feedreader/view/AddFeedWindow.js:136 +msgid "Please enter a title." +msgstr "Vložte prosím název." + +#: feedreader/view/AddFeedWindow.js:144 +msgid "Please enter a url." +msgstr "Vložte prosím URL." + +#: feedreader/view/List.js:50 +msgid "Posts" +msgstr "Příspěvky" + +#: feedreader/view/PreferenceWindow.js:85 +msgid "Language" +msgstr "Jazyk" + +#: feedreader/view/PreferenceWindow.js:137 +msgid "Cancel" +msgstr "Storno" + +#: feedreader/view/PreferenceWindow.js:140 +msgid "OK" +msgstr "OK" + +#: feedreader/view/ToolBar.js:60 +msgid "Add feed" +msgstr "Přidat zdroj" + +#: feedreader/view/ToolBar.js:64 +msgid "Remove feed" +msgstr "Odstranit zdroj" + +#: feedreader/view/ToolBar.js:75 +msgid "Reload" +msgstr "Obnovit" + +#: feedreader/view/ToolBar.js:78 +msgid "Reload the feeds. (%1)" +msgstr "Obnovit zdroje. (%1)" + +#: feedreader/view/ToolBar.js:87 feedreader/view/PreferenceWindow.js:48 +msgid "Preferences" +msgstr "Nastavení" + +#: feedreader/view/ToolBar.js:89 +msgid "Open preferences window." +msgstr "Otevřít okno nastavení." + +#: feedreader/view/ToolBar.js:102 +msgid "Help" +msgstr "Nápověda" Added: trunk/qooxdoo-contrib/Translation/1.0/framework/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/1.0/framework/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/1.0/framework/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,339 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2012-08-27 10:59+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: qx/locale/Key.js:80 +msgid "key_short_Backspace" +msgstr "Backspace" + +#: qx/locale/Key.js:81 +msgid "key_short_Tab" +msgstr "Tab" + +#: qx/locale/Key.js:82 +msgid "key_short_Space" +msgstr "Mezera" + +#: qx/locale/Key.js:83 +msgid "key_short_Enter" +msgstr "Enter" + +#: qx/locale/Key.js:84 +msgid "key_short_Shift" +msgstr "Shift" + +#: qx/locale/Key.js:85 +msgid "key_short_Control" +msgstr "Ctrl" + +#: qx/locale/Key.js:86 +msgid "key_short_Control_Mac" +msgstr "Ctrl" + +#: qx/locale/Key.js:87 +msgid "key_short_Alt" +msgstr "Alt" + +#: qx/locale/Key.js:88 +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +#: qx/locale/Key.js:89 +msgid "key_short_Meta" +msgstr "Meta" + +#: qx/locale/Key.js:90 +msgid "key_short_Escape" +msgstr "Esc" + +#: qx/locale/Key.js:91 +msgid "key_short_Left" +msgstr "Doleva" + +#: qx/locale/Key.js:92 +msgid "key_short_Up" +msgstr "Nahoru" + +#: qx/locale/Key.js:93 +msgid "key_short_Right" +msgstr "Doprava" + +#: qx/locale/Key.js:94 +msgid "key_short_Down" +msgstr "Dolů" + +#: qx/locale/Key.js:95 +msgid "key_short_PageUp" +msgstr "PgUp" + +#: qx/locale/Key.js:96 +msgid "key_short_PageDown" +msgstr "PgDn" + +#: qx/locale/Key.js:97 +msgid "key_short_End" +msgstr "End" + +#: qx/locale/Key.js:98 +msgid "key_short_Home" +msgstr "Home" + +#: qx/locale/Key.js:99 +msgid "key_short_Insert" +msgstr "Ins" + +#: qx/locale/Key.js:100 +msgid "key_short_Delete" +msgstr "Delete" + +#: qx/locale/Key.js:101 +msgid "key_short_NumLock" +msgstr "Num" + +#: qx/locale/Key.js:102 +msgid "key_short_PrintScreen" +msgstr "PrSc" + +#: qx/locale/Key.js:103 +msgid "key_short_Scroll" +msgstr "ScLck" + +#: qx/locale/Key.js:104 +msgid "key_short_Pause" +msgstr "Pause" + +#: qx/locale/Key.js:105 +msgid "key_short_Win" +msgstr "Win" + +#: qx/locale/Key.js:106 +msgid "key_short_Apps" +msgstr "Kontext" + +#: qx/locale/Key.js:109 +msgid "key_full_Backspace" +msgstr "Backspace" + +#: qx/locale/Key.js:110 +msgid "key_full_Tab" +msgstr "Tab" + +#: qx/locale/Key.js:111 +msgid "key_full_Space" +msgstr "Mezerník" + +#: qx/locale/Key.js:112 +msgid "key_full_Enter" +msgstr "Enter" + +#: qx/locale/Key.js:113 +msgid "key_full_Shift" +msgstr "Shift" + +#: qx/locale/Key.js:114 +msgid "key_full_Control" +msgstr "Ctrl" + +#: qx/locale/Key.js:115 +msgid "key_full_Control_Mac" +msgstr "Ctrl" + +#: qx/locale/Key.js:116 +msgid "key_full_Alt" +msgstr "Alt" + +#: qx/locale/Key.js:117 +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +#: qx/locale/Key.js:118 +msgid "key_full_Meta" +msgstr "Meta" + +#: qx/locale/Key.js:119 +msgid "key_full_Escape" +msgstr "Esc" + +#: qx/locale/Key.js:120 +msgid "key_full_Left" +msgstr "Doleva" + +#: qx/locale/Key.js:121 +msgid "key_full_Up" +msgstr "Nahoru" + +#: qx/locale/Key.js:122 +msgid "key_full_Right" +msgstr "Doprava" + +#: qx/locale/Key.js:123 +msgid "key_full_Down" +msgstr "Dolů" + +#: qx/locale/Key.js:124 +msgid "key_full_PageUp" +msgstr "Page Up" + +#: qx/locale/Key.js:125 +msgid "key_full_PageDown" +msgstr "Page Down" + +#: qx/locale/Key.js:126 +msgid "key_full_End" +msgstr "End" + +#: qx/locale/Key.js:127 +msgid "key_full_Home" +msgstr "Home" + +#: qx/locale/Key.js:128 +msgid "key_full_Insert" +msgstr "Ins" + +#: qx/locale/Key.js:129 +msgid "key_full_Delete" +msgstr "Del" + +#: qx/locale/Key.js:130 +msgid "key_full_NumLock" +msgstr "Num" + +#: qx/locale/Key.js:131 +msgid "key_full_PrintScreen" +msgstr "Print Screen" + +#: qx/locale/Key.js:132 +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +#: qx/locale/Key.js:133 +msgid "key_full_Pause" +msgstr "Pause" + +#: qx/locale/Key.js:134 +msgid "key_full_Win" +msgstr "Win" + +#: qx/locale/Key.js:135 +msgid "key_full_Apps" +msgstr "Kontextové menu" + +#: qx/test/locale/Locale.js:72 qx/test/locale/Locale.js:75 +#: qx/test/locale/Locale.js:78 +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +#: qx/test/ui/LocaleSwitch.js:85 qx/test/ui/LocaleSwitch.js:115 +#: qx/test/locale/Locale.js:60 +msgid "test one" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:93 qx/test/locale/Locale.js:64 +#: qx/test/locale/Locale.js:68 +msgid "test Hello %1!" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:93 qx/test/locale/Locale.js:68 +msgid "test Jonny" +msgstr "" + +#: qx/test/ui/LocaleSwitch.js:99 +msgid "test two" +msgstr "" + +#: qx/ui/control/ColorPopup.js:138 +msgid "Automatic" +msgstr "Automaticky" + +#: qx/ui/control/ColorPopup.js:146 +msgid "Open ColorSelector" +msgstr "Otevřít Výběr barvy" + +#: qx/ui/control/ColorPopup.js:171 +msgid "OK" +msgstr "OK" + +#: qx/ui/control/ColorPopup.js:176 +msgid "Cancel" +msgstr "Storno" + +#: qx/ui/control/ColorPopup.js:233 +msgid "Color Selector" +msgstr "Výběr barvy" + +#: qx/ui/control/ColorSelector.js:232 +msgid "Visual" +msgstr "Vizuální" + +#: qx/ui/control/ColorSelector.js:292 +msgid "Presets" +msgstr "Předvolby" + +#: qx/ui/control/ColorSelector.js:323 +msgid "Details" +msgstr "Podrobnosti" + +#: qx/ui/control/ColorSelector.js:334 qx/ui/control/ColorPopup.js:153 +msgid "Preview (Old/New)" +msgstr "Náhled (starý/nový)" + +#: qx/ui/control/ColorSelector.js:352 +msgid "Hex" +msgstr "Hex" + +#: qx/ui/control/ColorSelector.js:374 +msgid "RGB" +msgstr "RGB" + +#: qx/ui/control/ColorSelector.js:406 +msgid "HSB" +msgstr "HSB" + +#: qx/ui/control/DateChooser.js:227 +msgid "Last year" +msgstr "Předchozí rok" + +#: qx/ui/control/DateChooser.js:239 +msgid "Last month" +msgstr "Předchozí měsíc" + +#: qx/ui/control/DateChooser.js:251 +msgid "Next month" +msgstr "Další měsíc" + +#: qx/ui/control/DateChooser.js:263 +msgid "Next year" +msgstr "Další rok" + +#: qx/ui/table/Table.js:1778 +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "jeden řádek" +msgstr[1] "%1 řádky" +msgstr[2] "%1 řádků" + +#: qx/ui/table/Table.js:1780 +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "jeden řádek z jednoho" +msgstr[1] "%1 ze %2 řádků" +msgstr[2] "%1 z %2 řádků" + +#: qx/ui/table/columnmodel/Resize.js:199 +msgid "Reset column widths" +msgstr "Obnovit šířky sloupců" Added: trunk/qooxdoo-contrib/Translation/1.0/playground/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/1.0/playground/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/1.0/playground/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,121 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: 1.0\n" +"Report-Msgid-Bugs-To: yo...@qo...\n" +"POT-Creation-Date: 2007-10-18 14:00+0100\n" +"PO-Revision-Date: 2012-08-27 11:01+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Team <you...@qo...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: playground/Application.js:72 +msgid "" +"Unfortunately, an unrecoverable internal error was caused by your code. This " +"may prevent the playground application to run properly.||Please copy your " +"code, restart the playground and paste your code.||" +msgstr "" +"Naneštěstí se v kódu vyskytla chyba, ze které se nelze vzpamatovat. Toto " +"může bránit aplikaci pískoviště v řádném fungování.||Zkopírujte prosím svůj " +"kód, restartujte Pískoviště a vložte svůj kód.||" + +#: playground/Application.js:205 +msgid "Custom Code" +msgstr "Vlastní kód" + +#: playground/Application.js:214 +msgid "Unreadable Custom Code" +msgstr "Nečitelný vlastní kód" + +#: playground/Application.js:217 +msgid "" +" Your browser has a length restriction of the URL parameter which could have " +"caused the problem." +msgstr "" +"Váš prohlížeč má omezení délky URL parametru, které může působit problémy." + +#: playground/Application.js:344 +msgid "Source Code" +msgstr "Zdrojový kód" + +#: playground/Application.js:490 +msgid "%1 (modified)" +msgstr "%1 (změněno)" + +#: playground/Application.js:542 +msgid "Starting application" +msgstr "Startování aplikace" + +#: playground/Application.js:546 +msgid "Successfully started" +msgstr "Úspěšný start" + +#: playground/Application.js:687 +msgid "" +"You changed the code of the current sample.|Click OK to discard your changes." +msgstr "Změnil jste kód příkladu.|Stiskněte OK pro zhození vašich změn." + +#: playground/Application.js:735 +msgid "" +"Could not save your code in the url because it is too much code. Do you want " +"to ignore it?" +msgstr "" +"V URL nelze uložit váš kód, protože obsahuje příliš mnoho kódu. Chcete toto " +"ignorovat?" + +#: playground/Application.js:863 playground/Application.js:973 +msgid "Log" +msgstr "Log" + +#: playground/Application.js:916 +msgid "Playground" +msgstr "Pískoviště" + +#: playground/Application.js:919 +msgid "qooxdoo %1" +msgstr "qooxdoo %1" + +#: playground/Application.js:943 +msgid "Run" +msgstr "Spustit" + +#: playground/Application.js:947 +msgid "Run the source code" +msgstr "Spustit zdrojový kód" + +#: playground/Application.js:950 +msgid "Samples" +msgstr "Příklady" + +#: playground/Application.js:953 +msgid "Select a sample" +msgstr "Vyberte příklad" + +#: playground/Application.js:956 +msgid "Syntax Highlighting" +msgstr "Zvýrazňování syntaxe" + +#: playground/Application.js:976 +msgid "Show log output" +msgstr "Zobrazit výstup logů" + +#: playground/Application.js:979 +msgid "API Viewer" +msgstr "Prohlížeč API" + +#: playground/Application.js:982 +msgid "Open the qooxdoo API Viewer" +msgstr "Otevřít Prohlížeč API qooxdoo" + +#: playground/Application.js:985 +msgid "Manual" +msgstr "Manuál" + +#: playground/Application.js:988 +msgid "Open the qooxdoo Manual" +msgstr "Otevřít manuál qooxdoo" Added: trunk/qooxdoo-contrib/Translation/1.0.2/feedreader/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/1.0.2/feedreader/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/1.0.2/feedreader/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,100 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2012-08-27 10:58+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: feedreader/Application.js:143 +msgid "Static Feeds" +msgstr "Statické zdroje" + +#: feedreader/Application.js:173 +msgid "User Feeds" +msgstr "Uživatelské zdroje" + +#: feedreader/Application.js:530 +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (běží na qooxdoo)" + +#: feedreader/view/AddFeedWindow.js:49 +msgid "Add a feed" +msgstr "Přidat zdroj" + +#: feedreader/view/AddFeedWindow.js:90 +msgid "Feed Information" +msgstr "Informace o zdroji" + +#: feedreader/view/AddFeedWindow.js:97 +msgid "Title:" +msgstr "Název:" + +#: feedreader/view/AddFeedWindow.js:100 +msgid "URL:" +msgstr "URL:" + +#: feedreader/view/AddFeedWindow.js:112 +msgid "Add" +msgstr "Přidat" + +#: feedreader/view/AddFeedWindow.js:136 +msgid "Please enter a title." +msgstr "Vložte prosím název." + +#: feedreader/view/AddFeedWindow.js:144 +msgid "Please enter a url." +msgstr "Vložte prosím URL." + +#: feedreader/view/List.js:50 +msgid "Posts" +msgstr "Příspěvky" + +#: feedreader/view/PreferenceWindow.js:85 +msgid "Language" +msgstr "Jazyk" + +#: feedreader/view/PreferenceWindow.js:137 +msgid "Cancel" +msgstr "Storno" + +#: feedreader/view/PreferenceWindow.js:140 +msgid "OK" +msgstr "OK" + +#: feedreader/view/ToolBar.js:60 +msgid "Add feed" +msgstr "Přidat zdroj" + +#: feedreader/view/ToolBar.js:64 +msgid "Remove feed" +msgstr "Odstranit zdroj" + +#: feedreader/view/ToolBar.js:75 +msgid "Reload" +msgstr "Obnovit" + +#: feedreader/view/ToolBar.js:78 +msgid "Reload the feeds. (%1)" +msgstr "Obnovit zdroje. (%1)" + +#: feedreader/view/ToolBar.js:87 feedreader/view/PreferenceWindow.js:48 +msgid "Preferences" +msgstr "Nastavení" + +#: feedreader/view/ToolBar.js:89 +msgid "Open preferences window." +msgstr "Otevřít okno nastavení." + +#: feedreader/view/ToolBar.js:102 +msgid "Help" +msgstr "Nápověda" Added: trunk/qooxdoo-contrib/Translation/1.0.2/framework/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/1.0.2/framework/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/1.0.2/framework/cs.po 2012-08-28 12:04:48 UTC (rev 21785) @@ -0,0 +1,375 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2012-08-27 10:58+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: qx/locale/Key.js:80 +msgid "key_short_Backspace" +msgstr "Backspace" + +#: qx/locale/Key.js:81 +msgid "key_short_Tab" +msgstr "Tab" + +#: qx/locale/Key.js:82 +msgid "key_short_Space" +msgstr "Mezera" + +#: qx/locale/Key.js:83 +msgid "key_short_Enter" +msgstr "Enter" + +#: qx/locale/Key.js:84 +msgid "key_short_Shift" +msgstr "Shift" + +#: qx/locale/Key.js:85 +msgid "key_short_Control" +msgstr "Ctrl" + +#: qx/locale/Key.js:86 +msgid "key_short_Control_Mac" +msgstr "Ctrl" + +#: qx/locale/Key.js:87 +msgid "key_short_Alt" +msgstr "Alt" + +#: qx/locale/Key.js:88 +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +#: qx/locale/Key.js:89 +msgid "key_short_Meta" +msgstr "Meta" + +#: qx/locale/Key.js:90... [truncated message content] |
From: <de...@us...> - 2012-08-25 13:09:02
|
Revision: 21784 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21784&view=rev Author: derrell Date: 2012-08-25 13:08:56 +0000 (Sat, 25 Aug 2012) Log Message: ----------- Update TimezoneDate manifest to indicate that it works for 2.0. Modified Paths: -------------- trunk/qooxdoo-contrib/TimezoneDate/trunk/Manifest.json Modified: trunk/qooxdoo-contrib/TimezoneDate/trunk/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/TimezoneDate/trunk/Manifest.json 2012-08-25 13:08:46 UTC (rev 21783) +++ trunk/qooxdoo-contrib/TimezoneDate/trunk/Manifest.json 2012-08-25 13:08:56 UTC (rev 21784) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.4"] + "qooxdoo-versions": ["1.4", "1.5", "1.6", "2.0"] }, "provides" : This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2012-08-25 13:08:53
|
Revision: 21783 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21783&view=rev Author: derrell Date: 2012-08-25 13:08:46 +0000 (Sat, 25 Aug 2012) Log Message: ----------- Update SmartTableModel manifest to indicate that it works for 2.0. Modified Paths: -------------- trunk/qooxdoo-contrib/SmartTableModel/trunk/Manifest.json Modified: trunk/qooxdoo-contrib/SmartTableModel/trunk/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/SmartTableModel/trunk/Manifest.json 2012-08-23 10:13:11 UTC (rev 21782) +++ trunk/qooxdoo-contrib/SmartTableModel/trunk/Manifest.json 2012-08-25 13:08:46 UTC (rev 21783) @@ -22,7 +22,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.2", "1.3", "1.4"] + "qooxdoo-versions": ["1.2", "1.3", "1.4", "1.5", "1.6", "2.0"] }, "provides" : This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hel...@us...> - 2012-08-23 10:13:19
|
Revision: 21782 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21782&view=rev Author: heldermagalhaes Date: 2012-08-23 10:13:11 +0000 (Thu, 23 Aug 2012) Log Message: ----------- Improvement: Added "SVG Primer" e-book to the recommended reading section. General: Trailing space removal. Modified Paths: -------------- trunk/qooxdoo-contrib/SVG/README.TXT Modified: trunk/qooxdoo-contrib/SVG/README.TXT =================================================================== --- trunk/qooxdoo-contrib/SVG/README.TXT 2012-08-18 14:18:11 UTC (rev 21781) +++ trunk/qooxdoo-contrib/SVG/README.TXT 2012-08-23 10:13:11 UTC (rev 21782) @@ -3,7 +3,7 @@ == Introduction == This library provides a qooxdoo interface to native SVG graphics. It can be - used to dynamically create, alter and embed SVG graphics directly into a + used to dynamically create, alter and embed SVG graphics directly into a qooxdoo application. The library interface is heavily based on the W3C SVG 1.1 FULL standard and aims @@ -15,18 +15,21 @@ == Recommended reading == - + W3C Scalable Vector Graphics (SVG) 1.1 standard - http://www.w3.org/TR/SVG11/ W3 Schools introduction to SVG - - http://www.w3schools.com/svg/ - - E-book: "Learn SVG: The Web Graphics Standard" - - http://www.learnsvg.com/ - + - http://www.w3schools.com/svg/ + + E-book: "An SVG Primer for Today's Browsers" + - http://www.w3.org/Graphics/SVG/IG/resources/svgprimer.html + + E-book: "Learn SVG: The Web Graphics Standard" + - http://www.learnsvg.com/ + Mozilla SVG project - http://www.mozilla.org/projects/svg/ - + WebKit SVG project - http://webkit.org/projects/svg/ \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sc...@us...> - 2012-08-18 14:18:18
|
Revision: 21781 http://qooxdoo-contrib.svn.sourceforge.net/qooxdoo-contrib/?rev=21781&view=rev Author: scro34 Date: 2012-08-18 14:18:11 +0000 (Sat, 18 Aug 2012) Log Message: ----------- Minor changes accounting for altered shadow handling in qooxdoo v2.0 Modified Paths: -------------- trunk/qooxdoo-contrib/RetroTheme/0.1/Manifest.json trunk/qooxdoo-contrib/RetroTheme/0.1/demo/blue/Manifest.json trunk/qooxdoo-contrib/RetroTheme/0.1/demo/dark/Manifest.json trunk/qooxdoo-contrib/RetroTheme/0.1/demo/red/Manifest.json trunk/qooxdoo-contrib/RetroTheme/0.1/readme.txt trunk/qooxdoo-contrib/RetroTheme/0.2/Manifest.json trunk/qooxdoo-contrib/RetroTheme/0.2/demo/blue/Manifest.json trunk/qooxdoo-contrib/RetroTheme/0.2/demo/dark/Manifest.json trunk/qooxdoo-contrib/RetroTheme/0.2/demo/red/Manifest.json trunk/qooxdoo-contrib/RetroTheme/0.2/readme.txt trunk/qooxdoo-contrib/RetroTheme/trunk/Manifest.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/Manifest.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/config.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/Manifest.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/config.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/Manifest.json trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/config.json trunk/qooxdoo-contrib/RetroTheme/trunk/readme.txt trunk/qooxdoo-contrib/RetroTheme/trunk/source/class/retrotheme/theme/Decoration.js Modified: trunk/qooxdoo-contrib/RetroTheme/0.1/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.1/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.1/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -17,7 +17,7 @@ } ], - "version" : "trunk", + "version" : "0.1", "qooxdoo-versions": ["1.0", "1.1", "1.2", "1.3"] }, Modified: trunk/qooxdoo-contrib/RetroTheme/0.1/demo/blue/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.1/demo/blue/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.1/demo/blue/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -17,7 +17,7 @@ } ], - "version" : "trunk", + "version" : "0.1", "qooxdoo-versions": ["1.0", "1.1", "1.2", "1.3"] }, Modified: trunk/qooxdoo-contrib/RetroTheme/0.1/demo/dark/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.1/demo/dark/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.1/demo/dark/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -17,7 +17,7 @@ } ], - "version" : "trunk", + "version" : "0.1", "qooxdoo-versions": ["1.0", "1.1", "1.2", "1.3"] }, Modified: trunk/qooxdoo-contrib/RetroTheme/0.1/demo/red/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.1/demo/red/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.1/demo/red/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -17,7 +17,7 @@ } ], - "version" : "trunk", + "version" : "0.1", "qooxdoo-versions": ["1.0", "1.1", "1.2", "1.3"] }, Modified: trunk/qooxdoo-contrib/RetroTheme/0.1/readme.txt =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.1/readme.txt 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.1/readme.txt 2012-08-18 14:18:11 UTC (rev 21781) @@ -3,4 +3,5 @@ Additional theme for the qooxdoo framework. >> Please note: RetroTheme version 0.1 works with qooxdoo v1.0 to v1.3. -Use the trunk if your application is generated with qooxdoo v1.4 to v1.6. \ No newline at end of file +Use v0.2 if your application is generated with qooxdoo v1.4 to v1.6. +Use the trunk if your application is generated with qooxdoo v2.0 or above. \ No newline at end of file Modified: trunk/qooxdoo-contrib/RetroTheme/0.2/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.2/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.2/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -17,7 +17,7 @@ } ], - "version" : "trunk", + "version" : "0.2", "qooxdoo-versions": ["1.4", "1.5", "1.6"] }, Modified: trunk/qooxdoo-contrib/RetroTheme/0.2/demo/blue/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.2/demo/blue/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.2/demo/blue/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -17,7 +17,7 @@ } ], - "version" : "trunk", + "version" : "0.2", "qooxdoo-versions": ["1.4", "1.5", "1.6"] }, Modified: trunk/qooxdoo-contrib/RetroTheme/0.2/demo/dark/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.2/demo/dark/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.2/demo/dark/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -17,7 +17,7 @@ } ], - "version" : "trunk", + "version" : "0.2", "qooxdoo-versions": ["1.4", "1.5", "1.6"] }, Modified: trunk/qooxdoo-contrib/RetroTheme/0.2/demo/red/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.2/demo/red/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.2/demo/red/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -17,7 +17,7 @@ } ], - "version" : "trunk", + "version" : "0.2", "qooxdoo-versions": ["1.4", "1.5", "1.6"] }, Modified: trunk/qooxdoo-contrib/RetroTheme/0.2/readme.txt =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/0.2/readme.txt 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/0.2/readme.txt 2012-08-18 14:18:11 UTC (rev 21781) @@ -2,5 +2,6 @@ Additional theme for the qooxdoo framework. ->> Please note: RetroTheme trunk version works with qooxdoo v1.4 to v1.6. -Use v0.1 if your application is generated with qooxdoo v1.0 to v1.3. \ No newline at end of file +>> Please note: RetroTheme version 0.2 works with qooxdoo v1.4 to v1.6. +Use v0.1 if your application is generated with qooxdoo v1.0 to v1.3. +Use the trunk if your application is generated with qooxdoo v2.0 or above. \ No newline at end of file Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.4", "1.5", "1.6"] + "qooxdoo-versions": ["2.0"] }, "provides" : Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.4", "1.5", "1.6"] + "qooxdoo-versions": ["2.0"] }, "provides" : Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/config.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/config.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/blue/config.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -32,7 +32,7 @@ "let" : { "APPLICATION" : "retrotheme.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/1.6", + "QOOXDOO_PATH" : "../../../../qooxdoo/2.0.1", "QXTHEME" : "retrotheme.RetroThemeBlue", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.4", "1.5", "1.6"] + "qooxdoo-versions": ["2.0"] }, "provides" : Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/config.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/config.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/dark/config.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -32,7 +32,7 @@ "let" : { "APPLICATION" : "retrotheme.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/1.6", + "QOOXDOO_PATH" : "../../../../qooxdoo/2.0.1", "QXTHEME" : "retrotheme.RetroThemeDark", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/Manifest.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/Manifest.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.4", "1.5", "1.6"] + "qooxdoo-versions": ["2.0"] }, "provides" : Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/config.json =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/config.json 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/demo/red/config.json 2012-08-18 14:18:11 UTC (rev 21781) @@ -32,7 +32,7 @@ "let" : { "APPLICATION" : "retrotheme.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/1.6", + "QOOXDOO_PATH" : "../../../../qooxdoo/2.0.1", "QXTHEME" : "retrotheme.RetroThemeRed", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/readme.txt =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/readme.txt 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/readme.txt 2012-08-18 14:18:11 UTC (rev 21781) @@ -2,5 +2,6 @@ Additional theme for the qooxdoo framework. ->> Please note: RetroTheme trunk version works with qooxdoo v1.4 to v1.6. +>> Please note: RetroTheme trunk version works with qooxdoo v2.0 or above. +Use v0.2 if your application is generated with qooxdoo v1.4 to v1.6. Use v0.1 if your application is generated with qooxdoo v1.0 to v1.3. \ No newline at end of file Modified: trunk/qooxdoo-contrib/RetroTheme/trunk/source/class/retrotheme/theme/Decoration.js =================================================================== --- trunk/qooxdoo-contrib/RetroTheme/trunk/source/class/retrotheme/theme/Decoration.js 2012-08-18 14:03:48 UTC (rev 21780) +++ trunk/qooxdoo-contrib/RetroTheme/trunk/source/class/retrotheme/theme/Decoration.js 2012-08-18 14:18:11 UTC (rev 21781) @@ -497,7 +497,7 @@ style : { baseImage : "decoration/shadow/shadow.png", - insets : [ 4, 8, 8, 4 ] + insets : [ 2, 4, 4, 2 ] } }, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |