[kune-commits] r935 - in trunk: . debian img src/main/java/org/ourproject/kune/app/public src/main/java/org/ourproject/kune/app/public/css src/main/java/org/ourproject/kune/app/public/js/ext src/main/java/org/ourproject/kune/app/public/js/ext/source src/main/java/org/ourproject/kune/app/public/js/ext/source/locale src/main/java/org/ourproject/kune/platf/server/access src/main/java/org/ourproject/kune/platf/server/domain src/main/java/org/ourproject/kune/workspace/client/entitylogo src/main/java/org/ourproject/kune/workspace/client/newgroup src/test/java/org/ourproject/kune/platf/integration/selenium src/test/java/org/ourproject/kune/platf/server/access

vjrj vjrj at ourproject.org
Wed Oct 29 15:25:41 CET 2008


Author: vjrj
Date: 2008-10-29 15:25:29 +0100 (Wed, 29 Oct 2008)
New Revision: 935

Added:
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-af.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-bg.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ca.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-cs.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-da.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-de.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-el_GR.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en_UK.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-es.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fa.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr_CA.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-gr.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-he.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hr.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hu.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-id.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-it.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ja.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ko.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lt.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lv.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-mk.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-nl.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NB.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NN.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pl.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt_BR.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ro.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ru.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sk.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sl.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr_RS.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sv_SE.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-th.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-tr.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ukr.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-vn.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_CN.js
   trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_TW.js
Modified:
   trunk/
   trunk/debian/TODO
   trunk/img/
   trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
   trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
   trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
   trunk/src/main/java/org/ourproject/kune/platf/server/access/FinderServiceDefault.java
   trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
   trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
   trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
   trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
   trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
   trunk/src/test/java/org/ourproject/kune/platf/server/access/FinderTest.java
Log:
Complete - task I18n in ext 

Complete - task NPE in Content.accessLists 

Complete - task NPE finding a non existent content 

Incomplete - task New Group dialog refactorization 

Added captures to selenium tests


Property changes on: trunk
___________________________________________________________________
Name: svn:ignore
   - bin
client
public
target
Main-compile
bin
.settings
.gwt-cache
repository
derby.log
star-yellow-grey.png
run.sh
tomcat
.classpath
gwt-out
synccss.sh
.externalToolBuilders
.project
.wtpmodules
www
testRepository
kune-OLD-jcr
KuneApp.launch
KuneApp NOSERVER.launch
old_src
org.ourproject.kune.app.Kune
org.ourproject.kune.iml
org.ourproject.kune.ipr
org.ourproject.kune.iws
nbproject
hibernate.reveng.xml
.gwt-tmp
target-eclipse
.checkstyle

   + screenlog.0
bin
client
public
target
Main-compile
bin
.settings
.gwt-cache
repository
derby.log
star-yellow-grey.png
run.sh
tomcat
.classpath
gwt-out
synccss.sh
.externalToolBuilders
.project
.wtpmodules
www
testRepository
kune-OLD-jcr
KuneApp.launch
KuneApp NOSERVER.launch
old_src
org.ourproject.kune.app.Kune
org.ourproject.kune.iml
org.ourproject.kune.ipr
org.ourproject.kune.iws
nbproject
hibernate.reveng.xml
.gwt-tmp
target-eclipse
.checkstyle


Modified: trunk/debian/TODO
===================================================================
--- trunk/debian/TODO	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/debian/TODO	2008-10-29 14:25:29 UTC (rev 935)
@@ -2,3 +2,5 @@
 - create /var/lib/kune/uploads and give permissions
 - create /var/lib/kune/lucene 
 - deps: libjmagick6-jni
+- cp -a $EXTSRC/source/locale/ src/main/java/org/ourproject/kune/app/public/js/ext/source/
+


Property changes on: trunk/img
___________________________________________________________________
Name: svn:ignore
   - .dolphinview

   + .dolphinview
captures


Modified: trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/Kune.html	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/Kune.html	2008-10-29 14:25:29 UTC (rev 935)
@@ -54,6 +54,20 @@
 <body>
 <script type="text/javascript" language="javascript"
     src="org.ourproject.kune.app.Kune.nocache.js"></script>
+<script type="text/javascript" id="extlocale"></script>
+<script type="text/javascript">
+
+    // decode language passed in url
+    var locale = window.location.search
+                 ? Ext.urlDecode(window.location.search.substring(1)).locale
+                 : ''
+    ;
+    // append locale script to the head
+    var head = Ext.fly(document.getElementsByTagName('head')[0]);
+    if(locale) {
+        Ext.fly('extlocale').set({src:'js/ext/source/locale/ext-lang-' + locale + '.js'});
+    }
+</script>
 <iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
 <iframe src="" id="__download" style="width:0;height:0;border:0"></iframe>
 

Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css	2008-10-29 14:25:29 UTC (rev 935)
@@ -35,4 +35,4 @@
 }
 */.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/*  white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-TagsPanel-tag{float:left;margin-right:5px;cursor:pointer;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
     background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
-  padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-entitytextlogo .gwt-Hyperlink a{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:2em;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others */.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}
\ No newline at end of file
+  padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:2em;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others */.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}
\ No newline at end of file

Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css	2008-10-29 14:25:29 UTC (rev 935)
@@ -129,7 +129,7 @@
     color: #800000;
 }
 
-.k-entitytextlogo .gwt-Hyperlink a {
+.k-elogo-plink {
     color: #CCC;
     font-size: 85%;
     margin: 5px;
@@ -142,8 +142,7 @@
     background-color: transparent;
 }
 
-.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed
-    {
+.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed {
     background: #DD8A3D none repeat scroll 0% 50%;
 }
 

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-af.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-af.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-af.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,179 @@
+/*
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Afrikaans Translations
+ * by Thys Meintjes (20 July 2007)
+ */
+
+/* Ext Core translations */
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Besig om te laai...</div>';
+
+/* Ext single string translations */
+if(Ext.View){
+    Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+    Ext.grid.Grid.prototype.ddText = "{0} geselekteerde ry(e)";
+}
+
+if(Ext.TabPanelItem){
+    Ext.TabPanelItem.prototype.closeText = "Maak die oortjie toe";
+}
+
+if(Ext.form.Field){
+    Ext.form.Field.prototype.invalidText = "Die waarde in hierdie veld is foutief";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Besig om te laai...";
+}
+
+/* Javascript month and days translations */
+Date.monthNames = [
+   "Januarie",
+   "Februarie",
+   "Maart",
+   "April",
+   "Mei",
+   "Junie",
+   "Julie",
+   "Augustus",
+   "September",
+   "Oktober",
+   "November",
+   "Desember"
+];
+
+Date.dayNames = [
+   "Sondag",
+   "Maandag",
+   "Dinsdag",
+   "Woensdag",
+   "Donderdag",
+   "Vrydag",
+   "Saterdag"
+];
+
+/* Ext components translations */
+if(Ext.MessageBox){
+    Ext.MessageBox.buttonText = {
+       ok     : "OK",
+       cancel : "Kanselleer",
+       yes    : "Ja",
+       no     : "Nee"
+    };
+}
+
+if(Ext.util.Format){
+    Ext.util.Format.date = function(v, format){
+       if(!v) return "";
+       if(!(v instanceof Date)) v = new Date(Date.parse(v));
+       return v.dateFormat(format || "d-m-y");
+    };
+}
+
+if(Ext.DatePicker){
+    Ext.apply(Ext.DatePicker.prototype, {
+       todayText         : "Vandag",
+       minText           : "Hierdie datum is vroër as die minimum datum",
+       maxText           : "Hierdie dataum is later as die maximum datum",
+       disabledDaysText  : "",
+       disabledDatesText : "",
+       monthNames	 : Date.monthNames,
+       dayNames		 : Date.dayNames,
+       nextText          : 'Volgende Maand (Beheer+Regs)',
+       prevText          : 'Vorige Maand (Beheer+Links)',
+       monthYearText     : "Kies 'n maand (Beheer+Op/Af volgende/vorige jaar)",
+       todayTip          : "{0} (Spasie)",
+       format            : "d-m-y",
+       startDay          : 0
+    });
+}
+
+if(Ext.PagingToolbar){
+    Ext.apply(Ext.PagingToolbar.prototype, {
+       beforePageText : "Bladsy",
+       afterPageText  : "van {0}",
+       firstText      : "Eerste Bladsy",
+       prevText       : "Vorige Bladsy",
+       nextText       : "Volgende Bladsy",
+       lastText       : "Laatste Bladsy",
+       refreshText    : "Verfris",
+       displayMsg     : "Wys {0} - {1} van {2}",
+       emptyMsg       : 'Geen data om te wys nie'
+    });
+}
+
+if(Ext.form.TextField){
+    Ext.apply(Ext.form.TextField.prototype, {
+       minLengthText : "Die minimum lengte van die veld is {0}",
+       maxLengthText : "Die maximum lengte van die veld is {0}",
+       blankText     : "Die veld is verpligtend",
+       regexText     : "",
+       emptyText     : null
+    });
+}
+
+if(Ext.form.NumberField){
+    Ext.apply(Ext.form.NumberField.prototype, {
+       minText : "Die minimum waarde vir die veld is {0}",
+       maxText : "Die maximum waarde vir die veld is {0}",
+       nanText : "{0} is nie 'n geldige waarde nie"
+    });
+}
+
+if(Ext.form.DateField){
+    Ext.apply(Ext.form.DateField.prototype, {
+       disabledDaysText  : "Afgeskakel",
+       disabledDatesText : "Afgeskakel",
+       minText           : "Die datum in hierdie veld moet na {0} wees",
+       maxText           : "Die datum in hierdie veld moet voor {0} wees",
+       invalidText       : "{0} is nie 'n geldige datum nie - datumformaat is {1}",
+       format            : "d/m/y",
+       altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+    });
+}
+
+if(Ext.form.ComboBox){
+    Ext.apply(Ext.form.ComboBox.prototype, {
+       loadingText       : "Besig om te laai...",
+       valueNotFoundText : undefined
+    });
+}
+
+if(Ext.form.VTypes){
+    Ext.apply(Ext.form.VTypes, {
+       emailText    : "Hierdie veld moet 'n e-pos adres wees met die formaat 'gebruiker at domein.za'",
+       urlText      : "Hierdie veld moet 'n URL wees me die formaat 'http:/'+'/www.domein.za'",
+       alphaText    : 'Die veld mag alleenlik letters en _ bevat',
+       alphanumText : 'Die veld mag alleenlik letters, syfers en _ bevat'
+    });
+}
+
+if(Ext.grid.GridView){
+    Ext.apply(Ext.grid.GridView.prototype, {
+       sortAscText  : "Sorteer Oplopend",
+       sortDescText : "Sorteer Aflopend",
+       lockText     : "Vries Kolom",
+       unlockText   : "Ontvries Kolom",
+       columnsText  : "Kolomme"
+    });
+}
+
+if(Ext.grid.PropertyColumnModel){
+    Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+       nameText   : "Naam",
+       valueText  : "Waarde",
+       dateFormat : "Y-m-j"
+    });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+    Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+       splitTip            : "Trek om grootte aan te pas.",
+       collapsibleSplitTip : "Trek om grootte aan te pas. Dubbel-klik om weg te steek."
+    });
+}
+

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-bg.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-bg.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-bg.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,272 @@
+/**
+ * Bulgarian Translation
+ *
+ * By Георги Костадинов, Калгари, Канада
+ * 10 October 2007
+ * By Nedko Penev 
+ * 26 October 2007
+ *
+ * (utf-8 encoding)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Зареждане...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} избрани колони";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Затвори таб";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "Невалидна стойност на полето";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Зареждане...";
+}
+
+Date.monthNames = [
+  "Януари",
+  "Февруари",
+  "Март",
+  "Април",
+  "Май",
+  "Юни",
+  "Юли",
+  "Август",
+  "Септември",
+  "Октомври",
+  "Ноември",
+  "Декември"
+];
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.dayNames = [
+  "Неделя",
+  "Понеделник",
+  "Вторник",
+  "Сряда",
+  "Четвъртък",
+  "Петък",
+  "Събота"
+];
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "OK",
+    cancel : "Отмени",
+    yes    : "Да",
+    no     : "Не"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d.m.Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Днес",
+    minText           : "Тази дата е преди минималната",
+    maxText           : "Тази дата е след максималната",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Следващ месец (Control+Right)',
+    prevText          : 'Предишен месец (Control+Left)',
+    monthYearText     : 'Избери месец (Control+Up/Down за преместване по години)',
+    todayTip          : "{0} (Spacebar)",
+    format            : "d.m.y",
+    okText            : "&#160;OK&#160;",
+    cancelText        : "Отмени",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Страница",
+    afterPageText  : "от {0}",
+    firstText      : "Първа страница",
+    prevText       : "Предишна страница",
+    nextText       : "Следваща страница",
+    lastText       : "Последна страница",
+    refreshText    : "Презареди",
+    displayMsg     : "Показвайки {0} - {1} от {2}",
+    emptyMsg       : 'Няма данни за показване'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "Минималната дължина на това поле е {0}",
+    maxLengthText : "Максималната дължина на това поле е {0}",
+    blankText     : "Това поле е задължително",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "Минималната стойност за това поле е {0}",
+    maxText : "Максималната стойност за това поле е {0}",
+    nanText : "{0} не е валидно число"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Недостъпен",
+    disabledDatesText : "Недостъпен",
+    minText           : "Датата в това поле трябва да е след {0}",
+    maxText           : "Датата в това поле трябва да е преди {0}",
+    invalidText       : "{0} не е валидна дата - трябва да бъде във формат {1}",
+    format            : "d.m.y",
+    altFormats        : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Зареждане...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'Това поле трябва да бъде емейл във формат "user at domain.com"',
+    urlText      : 'Това поле трябва да бъде URL във формат "http:/'+'/www.domain.com"',
+    alphaText    : 'Това поле трябва да съдържа само букви и _',
+    alphanumText : 'Това поле трябва да съдържа само букви, цифри и _'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Моля, въведете URL за връзката:',
+    buttonTips : {
+      bold : {
+        title: 'Bold (Ctrl+B)',
+        text: 'Удебелява избрания текст.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Italic (Ctrl+I)',
+        text: 'Прави избрания текст курсив.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Underline (Ctrl+U)',
+        text: 'Подчертава избрания текст.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Уголеми текста',
+        text: 'Уголемява размера на шрифта.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Намали текста',
+        text: 'Намалява размера на шрифта.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Цвят на маркирания текст',
+        text: 'Променя фоновия цвят на избрания текст.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Цвят на шрифта',
+        text: 'Променя цвета на избрания текст.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Ляво подравняване',
+        text: 'Подравнява текста на ляво.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Центриране',
+        text: 'Центрира текста.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Дясно подравняване',
+        text: 'Подравнява текста на дясно.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Неномериран списък',
+        text: 'Започва неномериран списък.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Номериран списък',
+        text: 'Започва номериран списък.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Хипервръзка',
+        text: 'Превръща избрания текст в хипервръзка.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Редактиране на кода',
+        text: 'Преминаване в режим на редактиране на кода.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Подреди в нарастващ ред",
+    sortDescText : "Подреди в намаляващ ред",
+    lockText     : "Заключи колона",
+    unlockText   : "Отключи колона",
+    columnsText  : "Колони"
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Име",
+    valueText  : "Стойност",
+    dateFormat : "d.m.Y"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Влачете с мишката за да промените размера.",
+    collapsibleSplitTip : "Влачете с мишката за да промените размера. Чукнете два пъти за да скриете."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ca.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ca.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ca.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,286 @@
+/**
+ * Catalonian Translation by halkon_polako 6-12-2007
+ * December correction halkon_polako 11-12-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Carregant...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} fila(es) seleccionada(es)";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Tancar aquesta pestanya";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "El valor d&#39;aquest camp &#233;s inv&#224;lid";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Carregant...";
+}
+
+Date.monthNames = [
+  "Gener",
+  "Febrer",
+  "Mar&#231;",
+  "Abril",
+  "Maig",
+  "Juny",
+  "Juliol",
+  "Agost",
+  "Setembre",
+  "Octubre",
+  "Novembre",
+  "Desembre"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Gen : 0,
+  Feb : 1,
+  Mar : 2,
+  Abr : 3,
+  Mai : 4,
+  Jun : 5,
+  Jul : 6,
+  Ago : 7,
+  Set : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Diumenge",
+  "Dilluns",
+  "Dimarts",
+  "Dimecres",
+  "Dijous",
+  "Divendres",
+  "Dissabte"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "Acceptar",
+    cancel : "Cancel&#183;lar",
+    yes    : "S&#237;",
+    no     : "No"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d/m/Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Avui",
+    minText           : "Aquesta data &#233;s anterior a la data m&#237;nima",
+    maxText           : "Aquesta data &#233;s posterior a la data m&#224;xima",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Mes Seg&#252;ent (Control+Fletxa Dreta)',
+    prevText          : 'Mes Anterior (Control+Fletxa Esquerra)',
+    monthYearText     : 'Seleccioni un mes (Control+Fletxa a Dalt o Abaix per canviar els anys)',
+    todayTip          : "{0} (Barra d&#39;espai)",
+    format            : "d/m/Y",
+    okText            : "&#160;Acceptar&#160;",
+    cancelText        : "Cancel&#183;lar",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "P&#224;gina",
+    afterPageText  : "de {0}",
+    firstText      : "Primera P&#224;gina",
+    prevText       : "P&#224;gina Anterior",
+    nextText       : "P&#224;gina Seg&#252;ent",
+    lastText       : "Darrera P&#224;gina",
+    refreshText    : "Refrescar",
+    displayMsg     : "Mostrant {0} - {1} de {2}",
+    emptyMsg       : 'Sense dades per mostrar'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "El tamany m&#237;nim per aquest camp &#233;s {0}",
+    maxLengthText : "El tamany m&#224;xim per aquest camp &#233;s {0}",
+    blankText     : "Aquest camp &#233;s obligatori",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "El valor m&#237;nim per aquest camp &#233;s {0}",
+    maxText : "El valor m&#224;xim per aquest camp &#233;s {0}",
+    nanText : "{0} no &#233;s un nombre v&#224;lid"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Deshabilitat",
+    disabledDatesText : "Deshabilitat",
+    minText           : "La data en aquest camp ha de ser posterior a {0}",
+    maxText           : "La data en aquest camp ha de ser inferior a {0}",
+    invalidText       : "{0} no &#233;s una data v&#224;lida - ha de tenir el format {1}",
+    format            : "d/m/Y",
+    altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Carregant...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'Aquest camp ha de ser una adre&#231;a de e-mail amb el format "user at domain.com"',
+    urlText      : 'Aquest camp ha de ser una URL amb el format "http:/'+'/www.domain.com"',
+    alphaText    : 'Aquest camp nom&#233;s pot contenir lletres i _',
+    alphanumText : 'Aquest camp nom&#233;s por contenir lletres, nombres i _'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Si us plau, tecleixi la URL per l\'enlla&#231;:',
+    buttonTips : {
+      bold : {
+        title: 'Negreta (Ctrl+B)',
+        text: 'Posa el text seleccionat en negreta.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'It&#224;lica (Ctrl+I)',
+        text: 'Posa el text seleccionat en it&#224;lica.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Subratllat (Ctrl+U)',
+        text: 'Subratlla el text seleccionat.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Augmentar Text',
+        text: 'Augmenta el tamany de la font de text.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Disminuir Text',
+        text: 'Disminueix el tamany de la font de text.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Color de fons',
+        text: 'Canvia el color de fons del text seleccionat.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Color de la font de text',
+        text: 'Canvia el color del text seleccionat.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Alinear a la esquerra',
+        text: 'Alinea el text a la esquerra.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Centrar el text',
+        text: 'Centra el text a l\'editor',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Alinear a la dreta',
+        text: 'Alinea el text a la dreta.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Llista amb vinyetes',
+        text: 'Comen&#231;a una llista amb vinyetes.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Llista numerada',
+        text: 'Comen&#231;a una llista numerada.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Enlla&#231;',
+        text: 'Transforma el text seleccionat en un enlla&#231;.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Editar Codi',
+        text: 'Canvia al mode d\'edici&#243; de codi.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Ordenaci&#243; Ascendent",
+    sortDescText : "Ordenaci&#243; Descendent",
+    lockText     : "Bloquejar Columna",
+    unlockText   : "Desbloquejar Columna",
+    columnsText  : "Columnes"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Buit)',
+    groupByText    : 'Agrupar Per Aquest Camp',
+    showGroupsText : 'Mostrar en Grups'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Nom",
+    valueText  : "Valor",
+    dateFormat : "d/m/Y"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Cliqueu i arrossegueu per canviar el tamany del panell.",
+    collapsibleSplitTip : "Cliqueu i arrossegueu per canviar el tamany del panell. Doble clic per ocultar-ho."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-cs.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-cs.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-cs.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,287 @@
+/**
+ * Czech Translations
+ * Translated by Tomáš Korčák (72)
+ * 2008/02/08 18:02, Ext-2.0.1
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Prosím čekejte...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} vybraných řádků";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Zavřít záložku";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Hodnota v tomto poli je neplatná";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Prosím čekejte...";
+}
+
+Date.monthNames = [
+   "Leden",
+   "Únor",
+   "Březen",
+   "Duben",
+   "Květen",
+   "ÄŒerven",
+   "ÄŒervenec",
+   "Srpen",
+   "Září",
+   "Říjen",
+   "Listopad",
+   "Prosinec"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "Neděle",
+   "Pondělí",
+   "Úterý",
+   "Středa",
+   "ÄŒtvrtek",
+   "Pátek",
+   "Sobota"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Storno",
+      yes    : "Ano",
+      no     : "Ne"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Dnes",
+      minText           : "Datum nesmí být starší než je minimální",
+      maxText           : "Datum nesmí být dřívější než je maximální",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Následující měsíc (Control+Right)',
+      prevText          : 'Předcházející měsíc (Control+Left)',
+      monthYearText     : 'Zvolte měsíc (ke změně let použijte Control+Up/Down)',
+      todayTip          : "{0} (Spacebar)",
+      format            : "d.m.Y",
+      okText            : "&#160;OK&#160;",
+      cancelText        : "Storno",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Strana",
+      afterPageText  : "z {0}",
+      firstText      : "První strana",
+      prevText       : "Přecházející strana",
+      nextText       : "Následující strana",
+      lastText       : "Poslední strana",
+      refreshText    : "Aktualizovat",
+      displayMsg     : "Zobrazeno {0} - {1} z celkových {2}",
+      emptyMsg       : 'Žádné záznamy nebyly nalezeny'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Pole nesmí mít méně {0} znaků",
+      maxLengthText : "Pole nesmí být delší než {0} znaků",
+      blankText     : "This field is required",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Hodnota v tomto poli nesmí být menší než {0}",
+      maxText : "Hodnota v tomto poli nesmí být větší než {0}",
+      nanText : "{0} není platné číslo"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Neaktivní",
+      disabledDatesText : "Neaktivní",
+      minText           : "Datum v tomto poli nesmí být starší než {0}",
+      maxText           : "Datum v tomto poli nesmí být novější než {0}",
+      invalidText       : "{0} není platným datem - zkontrolujte zda-li je ve formátu {1}",
+      format            : "d.m.Y",
+      altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Prosím čekejte...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'V tomto poli může být vyplněna pouze emailová adresa ve formátu "uživatel at doména.cz"',
+      urlText      : 'V tomto poli může být vyplněna pouze URL (adresa internetové stránky) ve formátu "http:/'+'/www.doména.cz"',
+      alphaText    : 'Toto pole může obsahovat pouze písmena abecedy a znak _',
+      alphanumText : 'Toto pole může obsahovat pouze písmena abecedy, čísla a znak _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Zadejte URL adresu odkazu:',
+    buttonTips : {
+      bold : {
+        title: 'Tučné (Ctrl+B)',
+        text: 'Označí vybraný text tučně.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Kurzíva (Ctrl+I)',
+        text: 'Označí vybraný text kurzívou.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Podtržení (Ctrl+U)',
+        text: 'Podtrhne vybraný text.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Zvětšit písmo',
+        text: 'Zvětší velikost písma.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Zúžit písmo',
+        text: 'Zmenší velikost písma.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Barva zvýraznění textu',
+        text: 'Označí vybraný text tak, aby vypadal jako označený zvýrazňovačem.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Barva písma',
+        text: 'Změní barvu textu.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Zarovnat text vlevo',
+        text: 'Zarovná text doleva.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Zarovnat na střed',
+        text: 'Zarovná text na střed.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Zarovnat text vpravo',
+        text: 'Zarovná text doprava.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Odrážky',
+        text: 'Začne seznam s odrážkami.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Číslování',
+        text: 'Začne číslovaný seznam.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Internetový odkaz',
+        text: 'Z vybraného textu vytvoří internetový odkaz.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Zdrojový kód',
+        text: 'Přepne do módu úpravy zdrojového kódu.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Řadit vzestupně",
+      sortDescText : "Řadit sestupně",
+      lockText     : "Ukotvit sloupec",
+      unlockText   : "Uvolnit sloupec",
+      columnsText  : "Sloupce"
+   });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Žádná data)',
+    groupByText    : 'Seskupit dle tohoto pole',
+    showGroupsText : 'Zobrazit ve skupinÄ›'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Název",
+      valueText  : "Hodnota",
+      dateFormat : "j.m.Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Tahem změnit velikost.",
+      collapsibleSplitTip : "Tahem změnit velikost. Dvojklikem skrýt."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-da.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-da.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-da.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,290 @@
+/*
+ * Danish translation
+ * By JohnF
+ * 04-09-2007, 05:28 AM
+ * 
+ * Extended and modified by Karl Krukow, 
+ * December, 2007.
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Henter...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} markerede rækker";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Luk denne fane";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Værdien i dette felt er ugyldig";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Henter...";
+}
+
+Date.monthNames = [
+   "januar",
+   "februar",
+   "marts",
+   "april",
+   "maj",
+   "juni",
+   "juli",
+   "august",
+   "september",
+   "oktober",
+   "november",
+   "december"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "søndag",
+   "mandag",
+   "tirsdag",
+   "onsdag",
+   "torsdag",
+   "fredag",
+   "lørdag"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Fortryd",
+      yes    : "Ja",
+      no     : "Nej"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "I dag",
+      minText           : "Denne dato er før den tidligst tilladte",
+      maxText           : "Denne dato er senere end den senest tilladte",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames        : Date.monthNames,
+      dayNames          : Date.dayNames,      
+      nextText          : 'Næste måned (Ctrl + højre piltast)',
+      prevText          : 'Forrige måned (Ctrl + venstre piltast)',
+      monthYearText     : 'Vælg en måned (Ctrl + op/ned pil for at ændre årstal)',
+      todayTip          : "{0} (mellemrum)",
+      format            : "d/m/y",
+	  okText            : "&#160;OK&#160;",
+      cancelText        : "Cancel",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Side",
+      afterPageText  : "af {0}",
+      firstText      : "Første side",
+      prevText       : "Forrige side",
+      nextText       : "Næste side",
+      lastText       : "Sidste side",
+      refreshText    : "Opfrisk",
+      displayMsg     : "Viser {0} - {1} af {2}",
+      emptyMsg       : 'Der er ingen data at vise'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Minimum længden for dette felt er {0}",
+      maxLengthText : "Maksimum længden for dette felt er {0}",
+      blankText     : "Dette felt skal udfyldes",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Mindste-værdien for dette felt er {0}",
+      maxText : "Maksimum-værdien for dette felt er {0}",
+      nanText : "{0} er ikke et tilladt nummer"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Inaktiveret",
+      disabledDatesText : "Inaktiveret",
+      minText           : "Datoen i dette felt skal være efter {0}",
+      maxText           : "Datoen i dette felt skal være før {0}",
+      invalidText       : "{0} er ikke en tilladt dato - datoer skal angives i formatet {1}",
+      format            : "d/m/y",
+      altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Henter...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Dette felt skal være en email adresse i formatet "xxx at yyy.zzz"',
+      urlText      : 'Dette felt skal være en URL i formatet "http:/'+'/xxx.yyy"',
+      alphaText    : 'Dette felt kan kun indeholde bogstaver og "_" (understregning)',
+      alphanumText : 'Dette felt kan kun indeholde bogstaver, tal og "_" (understregning)'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Indtast URL:',
+    buttonTips : {
+      bold : {
+        title: 'Fed (Ctrl+B)', //Can I change this to Ctrl+F?
+        text: 'Formater det markerede tekst med fed.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Kursiv (Ctrl+I)',//Ctrl+K
+        text: 'Formater det markerede tekst med kursiv.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Understreg (Ctrl+U)',
+        text: 'Understreg det markerede tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Forstør tekst',
+        text: 'Forøg fontstørrelsen.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Formindsk tekst',
+        text: 'Formindsk fontstørrelsen.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Farve for tekstfremhævelse',
+        text: 'Skift baggrundsfarve for det markerede tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Skriftfarve',
+        text: 'Skift skriftfarve for det markerede tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Juster venstre',
+        text: 'Venstrestil tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Centreret',
+        text: 'Centrer tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Juster højre',
+        text: 'Højrestil tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Punktopstilling',
+        text: 'PÃ¥begynd punktopstilling.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Nummereret opstilling',
+        text: 'PÃ¥begynd nummereret opstilling.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hyperlink',
+        text: 'Lav det markerede test til et hyperlink.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Kildetekstredigering',
+        text: 'Skift til redigering af kildetekst.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Sortér stigende",
+      sortDescText : "Sortér faldende",
+      lockText     : "LÃ¥s kolonne",
+      unlockText   : "Fjern lås fra kolonne",
+      columnsText  : "Kolonner"
+   });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Ingen)',
+    groupByText    : 'Gruppér efter dette felt',
+    showGroupsText : 'Vis i grupper' //should this be sort in groups?
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Navn",
+      valueText  : "Værdi",
+      dateFormat : "j/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Træk for at ændre størrelsen.",
+      collapsibleSplitTip : "Træk for at ændre størrelsen. Dobbelt-klik for at skjule."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-de.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-de.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-de.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,301 @@
+/*
+ * German translation
+ * By schmidetzki and humpdi
+ * 04-07-2007
+ * Updated by wm003 10-31-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Ãœbertrage Daten ...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} Zeile(n) ausgewählt";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Diesen Tab schließen";
+}
+
+if(Ext.form.BasicForm){
+   Ext.form.BasicForm.prototype.waitTitle = "Bitte warten...";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Der Wert des Feldes ist nicht korrekt";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Ãœbertrage Daten...";
+}
+
+Date.monthNames = [
+   "Januar",
+   "Februar",
+   "März",
+   "April",
+   "Mai",
+   "Juni",
+   "Juli",
+   "August",
+   "September",
+   "Oktober",
+   "November",
+   "Dezember"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "Sonntag",
+   "Montag",
+   "Dienstag",
+   "Mittwoch",
+   "Donnerstag",
+   "Freitag",
+   "Samstag"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Abbrechen",
+      yes    : "Ja",
+      no     : "Nein"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Heute",
+      minText           : "Dieses Datum liegt von dem erstmöglichen Datum",
+      maxText           : "Dieses Datum liegt nach dem letztmöglichen Datum",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	    : Date.monthNames,
+      dayNames		    : Date.dayNames,
+      nextText          : "Nächster Monat (Strg/Control + Rechts)",
+      prevText          : "Vorheriger Monat (Strg/Control + Links)",
+      monthYearText     : "Monat auswählen (Strg/Control + Hoch/Runter, um ein Jahr auszuwählen)",
+      todayTip          : "Heute ({0}) (Leertaste)",
+      format            : "d.m.Y",
+      okText            : "&#160;OK&#160;",
+      cancelText        : "Abbrechen",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Seite",
+      afterPageText  : "von {0}",
+      firstText      : "Erste Seite",
+      prevText       : "vorherige Seite",
+      nextText       : "nächste Seite",
+      lastText       : "letzte Seite",
+      refreshText    : "Aktualisieren",
+      displayMsg     : "Anzeige Eintrag {0} - {1} von {2}",
+      emptyMsg       : "Keine Daten vorhanden"
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Bitte geben Sie mindestens {0} Zeichen ein",
+      maxLengthText : "Bitte geben Sie maximal {0} Zeichen ein",
+      blankText     : "Dieses Feld darf nicht leer sein",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Der Mindestwert für dieses Feld ist {0}",
+      maxText : "Der Maximalwert für dieses Feld ist {0}",
+      nanText : "{0} ist keine Zahl"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "nicht erlaubt",
+      disabledDatesText : "nicht erlaubt",
+      minText           : "Das Datum in diesem Feld muß nach dem {0} liegen",
+      maxText           : "Das Datum in diesem Feld muß vor dem {0} liegen",
+      invalidText       : "{0} ist kein valides Datum - es muß im Format {1} eingegeben werden",
+      format            : "d.m.Y",
+      altFormats        : "d.m.Y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Lade Daten ...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Dieses Feld sollte eine E-Mail-Adresse enthalten. Format: "user at domain.com"',
+      urlText      : 'Dieses Feld sollte eine URL enthalten. Format: "http:/'+'/www.domain.com"',
+      alphaText    : 'Dieses Feld darf nur Buchstaben enthalten und _',
+      alphanumText : 'Dieses Feld darf nur Buchstaben und Zahlen enthalten und _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Bitte geben Sie die URL für den Link ein:',
+    buttonTips : {
+      bold : {
+        title: 'Fett (Ctrl+B)',
+        text: 'Erstellt den ausgewählten Text in Fettschrift.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Kursiv (Ctrl+I)',
+        text: 'Erstellt den ausgewählten Text in Schrägschrift.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Unterstrichen (Ctrl+U)',
+        text: 'Unterstreicht den ausgewählten Text.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Text vergößern',
+        text: 'Erhöht die Schriftgröße.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Text verkleinern',
+        text: 'Verringert die Schriftgröße.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Text farblich hervorheben',
+        text: 'Hintergrundfarbe des ausgewählten Textes ändern.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Schriftfarbe',
+        text: 'Farbe des ausgewählten Textes ändern.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Linksbündig',
+        text: 'Setzt den Text linksbündig.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Zentrieren',
+        text: 'Zentriert den Text in Editor.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Rechtsbündig',
+        text: 'Setzt den Text rechtsbündig.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Aufzählungsliste',
+        text: 'Beginnt eine Aufzählungsliste mit Spiegelstrichen.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Numerierte Liste',
+        text: 'Beginnt eine numerierte Liste.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hyperlink',
+        text: 'Erstellt einen Hyperlink aus dem ausgewählten text.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Source bearbeiten',
+        text: 'Zur Bearbeitung des Quelltextes wechseln.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Aufsteigend sortieren",
+      sortDescText : "Absteigend sortieren",
+      lockText     : "Spalte sperren",
+      unlockText   : "Spalte freigeben (entsperren)",
+      columnsText  : "Spalten"
+   });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Keine)',
+    groupByText    : 'Dieses Feld gruppieren',
+    showGroupsText : 'In Gruppen anzeigen'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Name",
+      valueText  : "Wert",
+      dateFormat : "d.m.Y"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Ziehen, um Größe zu ändern.",
+    collapsibleSplitTip : "Ziehen, um Größe zu ändern. Doppelklick um Panel auszublenden."
+  });
+}
+
+if(Ext.form.TimeField){
+   Ext.apply(Ext.form.TimeField.prototype, {
+    minText : "Die Zeit muss gleich oder nach {0} liegen",
+    maxText : "Die Zeit muss gleich oder vor {0} liegen",
+    invalidText : "{0} ist keine gültige Zeit",
+    format : "H:i"
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-el_GR.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-el_GR.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-el_GR.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,254 @@
+/**
+ * Greek translation
+ * By thesilentman (utf8 encoding)
+ * 22 Sep 2007
+ *
+ * Changes since previous (first) Version:
+ * - HTMLEditor Translation
+ * - some minor corrections
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Μεταφόρτωση δεδομένων...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} Επιλεγμένες σειρές";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Κλείστε το tab";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Το περιεχόμενο του πεδίου δεν είναι αποδεκτό";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Μεταφόρτωση δεδομένων...";
+}
+
+Date.monthNames = [
+   "Ιανουάριος",
+   "Φεβρουάριος",
+   "Μάρτιος",
+   "Απρίλιος",
+   "Μάιος",
+   "Ιούνιος",
+   "Ιούλιος",
+   "Αύγουστος",
+   "Σεπτέμβριος",
+   "Οκτώβριος",
+   "Νοέμβριος",
+   "Δεκέμβριος"
+];
+
+Date.dayNames = [
+   "Κυριακή",
+   "Δευτέρα",
+   "Τρίτη",
+   "Τετάρτη",
+   "Πέμπτη",
+   "Παρασκευή",
+   "Σάββατο"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Άκυρο",
+      yes    : "Ναι",
+      no     : "Όχι"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Σήμερα",
+      minText           : "Η Ημερομηνία είναι προγενέστερη από την παλαιότερη αποδεκτή",
+      maxText           : "Η Ημερομηνία είναι μεταγενέστερη από την νεότερη αποδεκτή",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Επόμενος Μήνας (Control+Δεξί Βέλος)',
+      prevText          : 'Προηγούμενος Μήνας (Control + Αριστερό Βέλος)',
+      monthYearText     : 'Επιλογή Μηνός (Control + Επάνω/Κάτω Βέλος για μεταβολή ετών)',
+      todayTip          : "{0} (ΠΛήκτρο Διαστήματος)",
+      format            : "d/m/y"
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Σελίδα",
+      afterPageText  : "από {0}",
+      firstText      : "Πρώτη Σελίδα",
+      prevText       : "Προηγούμενη Σελίδα",
+      nextText       : "Επόμενη Σελίδα",
+      lastText       : "Τελευταία Σελίδα",
+      refreshText    : "Ανανέωση",
+      displayMsg     : "Εμφάνιση {0} - {1} από {2}",
+      emptyMsg       : 'Δεν υπάρχουν δεδομένα'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Το μικρότερο αποδεκτό μήκος για το πεδίο είναι {0}",
+      maxLengthText : "Το μεγαλύτερο αποδεκτό μήκος για το πεδίο είναι {0}",
+      blankText     : "Το πεδίο είναι υποχρεωτικό",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Η μικρότερη τιμή του πεδίου είναι {0}",
+      maxText : "Η μεγαλύτερη τιμή του πεδίου είναι {0}",
+      nanText : "{0} δεν είναι αποδεκτός αριθμός"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Ανενεργό",
+      disabledDatesText : "Ανενεργό",
+      minText           : "Η ημερομηνία αυτού του πεδίου πρέπει να είναι μετά την {0}",
+      maxText           : "Η ημερομηνία αυτού του πεδίου πρέπει να είναι πριν την {0}",
+      invalidText       : "{0} δεν είναι έγκυρη ημερομηνία - πρέπει να είναι στη μορφή {1}",
+      format            : "d/m/y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Μεταφόρτωση δεδομένων...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Το πεδίο δέχεται μόνο διευθύνσεις Email σε μορφή "user at domain.com"',
+      urlText      : 'Το πεδίο δέχεται μόνο URL σε μορφή "http:/'+'/www.domain.com"',
+      alphaText    : 'Το πεδίο δέχεται μόνο χαρακτήρες και _',
+      alphanumText : 'Το πεδίο δέχεται μόνο χαρακτήρες, αριθμούς και _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+   Ext.apply(Ext.form.HtmlEditor.prototype, {
+	 createLinkText : 'Δώστε τη διεύθυνση (URL) για το σύνδεσμο (link):',
+	 buttonTips : {
+            bold : {
+               title: 'Έντονα (Ctrl+B)',
+               text: 'Κάνετε το προεπιλεγμένο κείμενο έντονο.',
+               cls: 'x-html-editor-tip'
+            },
+            italic : {
+               title: 'Πλάγια (Ctrl+I)',
+               text: 'Κάνετε το προεπιλεγμένο κείμενο πλάγιο.',
+               cls: 'x-html-editor-tip'
+            },
+            underline : {
+               title: 'Υπογράμμιση (Ctrl+U)',
+               text: 'Υπογραμμίζετε το προεπιλεγμένο κείμενο.',
+               cls: 'x-html-editor-tip'
+           },
+           increasefontsize : {
+               title: 'Μεγέθυνση κειμένου',
+               text: 'Μεγαλώνετε τη γραμματοσειρά.',
+               cls: 'x-html-editor-tip'
+           },
+           decreasefontsize : {
+               title: 'Σμίκρυνση κειμένου',
+               text: 'Μικραίνετε τη γραμματοσειρά.',
+               cls: 'x-html-editor-tip'
+           },
+           backcolor : {
+               title: 'Χρώμα Φόντου Κειμένου',
+               text: 'Αλλάζετε το χρώμα στο φόντο του προεπιλεγμένου κειμένου.',
+               cls: 'x-html-editor-tip'
+           },
+           forecolor : {
+               title: 'Χρώμα Γραμματοσειράς',
+               text: 'Αλλάζετε το χρώμα στη γραμματοσειρά του προεπιλεγμένου κειμένου.',               
+               cls: 'x-html-editor-tip'
+           },
+           justifyleft : {
+               title: 'Αριστερή Στοίχιση Κειμένου',
+               text: 'Στοιχίζετε το κείμενο στα αριστερά.',
+               cls: 'x-html-editor-tip'
+           },
+           justifycenter : {
+               title: 'Κεντράρισμα Κειμένου',
+               text: 'Στοιχίζετε το κείμενο στο κέντρο.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyright : {
+               title: 'Δεξιά Στοίχιση Κειμένου',
+               text: 'Στοιχίζετε το κείμενο στα δεξιά.',
+               cls: 'x-html-editor-tip'
+           },
+           insertunorderedlist : {
+               title: 'Εισαγωγή Λίστας Κουκίδων',
+               text: 'Ξεκινήστε μια λίστα με κουκίδες.',
+               cls: 'x-html-editor-tip'
+           },
+           insertorderedlist : {
+               title: 'Εισαγωγή Λίστας Αρίθμησης',
+               text: 'Ξεκινήστε μια λίστα με αρίθμηση.',
+               cls: 'x-html-editor-tip'
+           },
+           createlink : {
+               title: 'Hyperlink',
+               text: 'Μετατρέπετε το προεπιλεγμένο κείμενο σε Link.',
+               cls: 'x-html-editor-tip'
+           },
+           sourceedit : {
+               title: 'Επεξεργασία Κώδικα',
+               text: 'Μεταβαίνετε στη λειτουργία επεξεργασίας κώδικα.',
+               cls: 'x-html-editor-tip'
+           }
+        }
+   });
+}
+
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Αύξουσα ταξινόμηση",
+      sortDescText : "Φθίνουσα ταξινόμηση",
+      lockText     : "Κλείδωμα στήλης",
+      unlockText   : "Ξεκλείδωμα στήλης",
+      columnsText  : "Στήλες"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Όνομα",
+      valueText  : "Περιεχόμενο",
+      dateFormat : "m/d/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Σύρετε για αλλαγή μεγέθους.",
+      collapsibleSplitTip : "Σύρετε για αλλαγή μεγέθους. Διπλό κλικ για απόκρυψη."
+   });
+}
+

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,288 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * English Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Loading...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} selected row(s)";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Close this tab";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Loading...";
+}
+
+Date.monthNames = [
+  "January",
+  "February",
+  "March",
+  "April",
+  "May",
+  "June",
+  "July",
+  "August",
+  "September",
+  "October",
+  "November",
+  "December"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Sunday",
+  "Monday",
+  "Tuesday",
+  "Wednesday",
+  "Thursday",
+  "Friday",
+  "Saturday"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "OK",
+    cancel : "Cancel",
+    yes    : "Yes",
+    no     : "No"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "m/d/Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Today",
+    minText           : "This date is before the minimum date",
+    maxText           : "This date is after the maximum date",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Next Month (Control+Right)',
+    prevText          : 'Previous Month (Control+Left)',
+    monthYearText     : 'Choose a month (Control+Up/Down to move years)',
+    todayTip          : "{0} (Spacebar)",
+    format            : "m/d/y",
+    okText            : "&#160;OK&#160;",
+    cancelText        : "Cancel",
+    startDay          : 0
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Page",
+    afterPageText  : "of {0}",
+    firstText      : "First Page",
+    prevText       : "Previous Page",
+    nextText       : "Next Page",
+    lastText       : "Last Page",
+    refreshText    : "Refresh",
+    displayMsg     : "Displaying {0} - {1} of {2}",
+    emptyMsg       : 'No data to display'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "The minimum length for this field is {0}",
+    maxLengthText : "The maximum length for this field is {0}",
+    blankText     : "This field is required",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "The minimum value for this field is {0}",
+    maxText : "The maximum value for this field is {0}",
+    nanText : "{0} is not a valid number"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Disabled",
+    disabledDatesText : "Disabled",
+    minText           : "The date in this field must be after {0}",
+    maxText           : "The date in this field must be before {0}",
+    invalidText       : "{0} is not a valid date - it must be in the format {1}",
+    format            : "m/d/y",
+    altFormats        : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Loading...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'This field should be an e-mail address in the format "user at domain.com"',
+    urlText      : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
+    alphaText    : 'This field should only contain letters and _',
+    alphanumText : 'This field should only contain letters, numbers and _'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Please enter the URL for the link:',
+    buttonTips : {
+      bold : {
+        title: 'Bold (Ctrl+B)',
+        text: 'Make the selected text bold.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Italic (Ctrl+I)',
+        text: 'Make the selected text italic.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Underline (Ctrl+U)',
+        text: 'Underline the selected text.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Grow Text',
+        text: 'Increase the font size.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Shrink Text',
+        text: 'Decrease the font size.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Text Highlight Color',
+        text: 'Change the background color of the selected text.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Font Color',
+        text: 'Change the color of the selected text.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Align Text Left',
+        text: 'Align text to the left.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Center Text',
+        text: 'Center text in the editor.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Align Text Right',
+        text: 'Align text to the right.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Bullet List',
+        text: 'Start a bulleted list.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Numbered List',
+        text: 'Start a numbered list.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hyperlink',
+        text: 'Make the selected text a hyperlink.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Source Edit',
+        text: 'Switch to source editing mode.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Sort Ascending",
+    sortDescText : "Sort Descending",
+    lockText     : "Lock Column",
+    unlockText   : "Unlock Column",
+    columnsText  : "Columns"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(None)',
+    groupByText    : 'Group By This Field',
+    showGroupsText : 'Show in Groups'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Name",
+    valueText  : "Value",
+    dateFormat : "m/j/Y"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Drag to resize.",
+    collapsibleSplitTip : "Drag to resize. Double click to hide."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en_UK.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en_UK.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-en_UK.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,173 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * English (UK) Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Loading...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} selected row(s)";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Close this tab";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Loading...";
+}
+
+Date.monthNames = [
+   "January",
+   "February",
+   "March",
+   "April",
+   "May",
+   "June",
+   "July",
+   "August",
+   "September",
+   "October",
+   "November",
+   "December"
+];
+
+Date.dayNames = [
+   "Sunday",
+   "Monday",
+   "Tuesday",
+   "Wednesday",
+   "Thursday",
+   "Friday",
+   "Saturday"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Cancel",
+      yes    : "Yes",
+      no     : "No"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Today",
+      minText           : "This date is before the minimum date",
+      maxText           : "This date is after the maximum date",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Next Month (Control+Right)',
+      prevText          : 'Previous Month (Control+Left)',
+      monthYearText     : 'Choose a month (Control+Up/Down to move years)',
+      todayTip          : "{0} (Spacebar)",
+      format            : "d/m/y"
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Page",
+      afterPageText  : "of {0}",
+      firstText      : "First Page",
+      prevText       : "Previous Page",
+      nextText       : "Next Page",
+      lastText       : "Last Page",
+      refreshText    : "Refresh",
+      displayMsg     : "Displaying {0} - {1} of {2}",
+      emptyMsg       : 'No data to display'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "The minimum length for this field is {0}",
+      maxLengthText : "The maximum length for this field is {0}",
+      blankText     : "This field is required",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "The minimum value for this field is {0}",
+      maxText : "The maximum value for this field is {0}",
+      nanText : "{0} is not a valid number"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Disabled",
+      disabledDatesText : "Disabled",
+      minText           : "The date in this field must be after {0}",
+      maxText           : "The date in this field must be before {0}",
+      invalidText       : "{0} is not a valid date - it must be in the format {1}",
+      format            : "d/m/y",
+      altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Loading...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'This field should be an e-mail address in the format "user at domain.com"',
+      urlText      : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
+      alphaText    : 'This field should only contain letters and _',
+      alphanumText : 'This field should only contain letters, numbers and _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Sort Ascending",
+      sortDescText : "Sort Descending",
+      lockText     : "Lock Column",
+      unlockText   : "Unlock Column",
+      columnsText  : "Columns"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Name",
+      valueText  : "Value",
+      dateFormat : "j/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Drag to resize.",
+      collapsibleSplitTip : "Drag to resize. Double click to hide."
+   });
+}
+

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-es.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-es.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-es.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,299 @@
+/*
+ * Spanish/Latin American Translation by genius551v 04-08-2007
+ * Revised by efege, 2007-04-15.
+ * Revised by Rafaga2k 10-01-2007 (mm/dd/yyyy)
+ * Revised by FeDe 12-13-2007 (mm/dd/yyyy)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Cargando...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} fila(s) seleccionada(s)";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Cerrar esta pesta&#241;a";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "El valor en este campo es inv&#225;lido";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Cargando...";
+}
+
+
+Date.monthNames = [
+   "Enero",
+   "Febrero",
+   "Marzo",
+   "Abril",
+   "Mayo",
+   "Junio",
+   "Julio",
+   "Agosto",
+   "Septiembre",
+   "Octubre",
+   "Noviembre",
+   "Diciembre"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Ene : 0,
+  Feb : 1,
+  Mar : 2,
+  Abr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Ago : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dic : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "Domingo",
+   "Lunes",
+   "Martes",
+   "Mi&#233;rcoles",
+   "Jueves",
+   "Viernes",
+   "S&#225;bado"
+];
+
+Date.getShortDayName = function(day) {
+  if (day==3) return "Mié";
+  if (day==6) return "Sáb";
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "Aceptar",
+      cancel : "Cancelar",
+      yes    : "S&#237;",
+      no     : "No"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Hoy",
+      minText           : "Esta fecha es anterior a la fecha m&#237;nima",
+      maxText           : "Esta fecha es posterior a la fecha m&#225;xima",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	    : Date.monthNames,
+      dayNames		    : Date.dayNames,
+      nextText          : 'Mes Siguiente (Control+Right)',
+      prevText          : 'Mes Anterior (Control+Left)',
+      monthYearText     : 'Seleccione un mes (Control+Up/Down para desplazar el a&#241;o)',
+      todayTip          : "{0} (Barra espaciadora)",
+      format            : "d/m/Y",
+      okText            : "&#160;Ok&#160;",
+      cancelText        : "Cancelar",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "P&#225;gina",
+      afterPageText  : "de {0}",
+      firstText      : "Primera p&#225;gina",
+      prevText       : "P&#225;gina anterior",
+      nextText       : "P&#225;gina siguiente",
+      lastText       : "Última p&#225;gina",
+      refreshText    : "Actualizar",
+      displayMsg     : "Mostrando {0} - {1} de {2}",
+      emptyMsg       : 'Sin datos para mostrar'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "El tama&#241;o m&#237;nimo para este campo es de {0}",
+      maxLengthText : "El tama&#241;o m&#225;ximo para este campo es de {0}",
+      blankText     : "Este campo es obligatorio",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "El valor m&#237;nimo para este campo es de {0}",
+      maxText : "El valor m&#225;ximo para este campo es de {0}",
+      nanText : "{0} no es un n&#250;mero v&#225;lido"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Deshabilitado",
+      disabledDatesText : "Deshabilitado",
+      minText           : "La fecha para este campo debe ser posterior a {0}",
+      maxText           : "La fecha para este campo debe ser anterior a {0}",
+      invalidText       : "{0} no es una fecha v&#225;lida - debe tener el formato {1}",
+      format            : "d/m/Y",
+      altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Cargando...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.HtmlEditor){
+   Ext.apply(Ext.form.HtmlEditor.prototype, {
+      createLinkText : "Por favor proporcione la URL para el enlace:",
+          buttonTips : {
+              insertimage:{
+                  title:'Imagen',
+                  text:'Inserta una imagen en la posición actual',
+                  cls:'x-html-editor-tip'
+              },
+              bold : {
+                  title: 'Negritas (Ctrl+B)',
+                  text: 'Transforma el texto seleccionado en Negritas.',
+                  cls: 'x-html-editor-tip'
+              },
+              italic : {
+                  title: 'It&#225;lica (Ctrl+I)',
+                  text: 'Transforma el texto seleccionado en It&#225;licas.',
+                  cls: 'x-html-editor-tip'
+              },
+              underline : {
+                  title: 'Subrayado (Ctrl+U)',
+                  text: 'Subraya el texto seleccionado.',
+                  cls: 'x-html-editor-tip'
+              },
+              increasefontsize : {
+                  title: 'Aumentar la fuente',
+                  text: 'Aumenta el tama&#241;o de la fuente',
+                  cls: 'x-html-editor-tip'
+              },
+              decreasefontsize : {
+                  title: 'Reducir la fuente',
+                  text: 'Reduce el tama&#241;o de la fuente.',
+                  cls: 'x-html-editor-tip'
+              },
+              backcolor : {
+                  title: 'Color de fondo',
+                  text: 'Modifica el color de fondo del texto seleccionado.',
+                  cls: 'x-html-editor-tip'
+              },
+              forecolor : {
+                  title: 'Color de la fuente',
+                  text: 'Modifica el color del texto seleccionado.',
+                  cls: 'x-html-editor-tip'
+              },
+              justifyleft : {
+                  title: 'Alinear a la izquierda',
+                  text: 'Alinea el texto a la izquierda.',
+                  cls: 'x-html-editor-tip'
+              },
+              justifycenter : {
+                  title: 'Centrar',
+                  text: 'Centrar el texto.',
+                  cls: 'x-html-editor-tip'
+              },
+              justifyright : {
+                  title: 'Alinear a la derecha',
+                  text: 'Alinea el texto a la derecha.',
+                  cls: 'x-html-editor-tip'
+              },
+              insertunorderedlist : {
+                  title: 'Lista de vi&#241;etas',
+                  text: 'Inicia una lista con vi&#241;etas.',
+                  cls: 'x-html-editor-tip'
+              },
+              insertorderedlist : {
+                  title: 'Lista numerada',
+                  text: 'Inicia una lista numerada.',
+                  cls: 'x-html-editor-tip'
+              },
+              createlink : {
+                  title: 'Enlace',
+                  text: 'Inserta un enlace de hipertexto.',
+                  cls: 'x-html-editor-tip'
+              },
+              sourceedit : {
+                  title: 'C&#243;digo Fuente',
+                  text: 'Pasar al modo de edici&#243;n de c&#243;digo fuente.',
+                  cls: 'x-html-editor-tip'
+              }
+        }
+   });
+}
+
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Este campo debe ser una direcci&#243;n de correo electr&#243;nico con el formato "usuario at dominio.com"',
+      urlText      : 'Este campo debe ser una URL con el formato "http:/'+'/www.dominio.com"',
+      alphaText    : 'Este campo s&#243;lo debe contener letras y _',
+      alphanumText : 'Este campo s&#243;lo debe contener letras, n&#250;meros y _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Ordenar en forma ascendente",
+      sortDescText : "Ordenar en forma descendente",
+      lockText     : "Bloquear Columna",
+      unlockText   : "Desbloquear Columna",
+      columnsText  : "Columnas"
+   });
+}
+
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Ninguno)',
+    groupByText    : 'Agrupar por este campo',
+    showGroupsText : 'Mostrar en grupos'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Nombre",
+      valueText  : "Valor",
+      dateFormat : "j/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Arrastre para redimensionar.",
+      collapsibleSplitTip : "Arrastre para redimensionar. Doble clic para ocultar."
+   });
+}
+

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fa.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fa.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fa.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,266 @@
+/*
+ * Farsi (Persian) translation
+ * By Mohaqa
+ * 03-10-2007, 06:23 PM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">در حال بارگذاری ...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} رکورد انتخاب شده";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "بستن";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "مقدار فیلد صحیح نیست";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "در حال بارگذاری ...";
+}
+
+Date.monthNames = [
+   "ژانویه",
+   "فوریه",
+   "مارس",
+   "آپریل",
+   "می",
+   "ژوئن",
+   "جولای",
+   "آگوست",
+   "سپتامبر",
+   "اکتبر",
+   "نوامبر",
+   "دسامبر"
+];
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.dayNames = [
+   "یکشنبه",
+   "دوشنبه",
+   "سه شنبه",
+   "چهارشنبه",
+   "پنجشنبه",
+   "جمعه",
+   "شنبه"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "تایید",
+      cancel : "بازگشت",
+      yes    : "بله",
+      no     : "خیر"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "Y/m/d");
+   };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "امروز",
+    minText           : "این تاریخ قبل از محدوده مجاز است",
+    maxText           : "این تاریخ پس از محدوده مجاز است",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'ماه بعد (Control + Right)',
+    prevText          : 'ماه قبل (Control+Left)',
+    monthYearText     : 'یک ماه را انتخاب کنید (Control+Up/Down برای انتقال در سال)',
+    todayTip          : "{0} (Spacebar)",
+    format            : "y/m/d",
+    okText            : "&#160;OK&#160;",
+    cancelText        : "Cancel",
+    startDay          : 0
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "صفحه",
+      afterPageText  : "از {0}",
+      firstText      : "صفحه اول",
+      prevText       : "صفحه قبل",
+      nextText       : "صفحه بعد",
+      lastText       : "صفحه آخر",
+      refreshText    : "بازخوانی",
+      displayMsg     : "نمایش {0} - {1} of {2}",
+      emptyMsg       : 'داده ای برای نمایش وجود ندارد'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "حداقل طول این فیلد برابر است با {0}",
+      maxLengthText : "حداکثر طول این فیلد برابر است با {0}",
+      blankText     : "این فیلد باید مقداری داشته باشد",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "حداقل مقدار این فیلد برابر است با {0}",
+      maxText : "حداکثر مقدار این فیلد برابر است با {0}",
+      nanText : "{0} یک عدد نیست"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "غیرفعال",
+      disabledDatesText : "غیرفعال",
+      minText           : "تاریخ باید پس از {0} باشد",
+      maxText           : "تاریخ باید پس از {0} باشد",
+      invalidText       : "{0} تاریخ صحیحی نیست - فرمت صحیح {1}",
+      format            : "y/m/d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "در حال بارگذاری ...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'مقدار این فیلد باید یک ایمیل با این فرمت باشد "user at domain.com"',
+      urlText      : 'مقدار این آدرس باید یک آدرس سایت با این فرمت باشد "http:/'+'/www.domain.com"',
+      alphaText    : 'مقدار این فیلد باید فقط از حروف الفبا و _ تشکیل شده باشد ',
+      alphanumText : 'مقدار این فیلد باید فقط از حروف الفبا، اعداد و _ تشکیل شده باشد'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'لطفا آدرس لینک را وارد کنید:',
+    buttonTips : {
+      bold : {
+        title: 'تیره (Ctrl+B)',
+        text: 'متن انتخاب شده را تیره می کند.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'ایتالیک (Ctrl+I)',
+        text: 'متن انتخاب شده را ایتالیک می کند.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'زیرخط (Ctrl+U)',
+        text: 'زیر هر نوشته یک خط نمایش می دهد.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'افزایش اندازه',
+        text: 'اندازه فونت را افزایش می دهد.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'کاهش اندازه',
+        text: 'اندازه متن را کاهش می دهد.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'رنگ زمینه متن',
+        text: 'برای تغییر رنگ زمینه متن استفاده می شود.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'رنگ قلم',
+        text: 'رنگ  قلم متن را تغییر می دهد.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'چیدن متن از سمت چپ',
+        text: 'متن از سمت چپ چیده شده می شود.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'متن در وسط ',
+        text: 'نمایش متن در قسمت وسط صفحه و رعابت سمت چپ و راست.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'چیدن متن از سمت راست',
+        text: 'متن از سمت راست پیده خواهد شد.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'لیست همراه با علامت',
+        text: 'یک لیست جدید ایجاد می کند.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'لیست عددی',
+        text: 'یک لیست عددی ایجاد می کند. ',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'لینک',
+        text: 'متن انتخاب شده را به لینک تبدیل کنید.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'ویرایش سورس',
+        text: 'رفتن به حالت ویرایش سورس.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "مرتب سازی افزایشی",
+      sortDescText : "مرتب سازی کاهشی",
+      lockText     : "قفل ستون ها",
+      unlockText   : "بازکردن ستون ها",
+      columnsText  : "ستون ها"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "نام",
+      valueText  : "مقدار",
+      dateFormat : "Y/m/d"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "درگ برای تغییر اندازه.",
+      collapsibleSplitTip : "برای تغییر اندازه درگ کنید."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,297 @@
+/*
+ * France (France) translation
+ * By Thylia
+ * 09-11-2007, 02:22 PM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">En cours de chargement...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} ligne(s) sélectionnée(s)";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Fermer cet onglet";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "La valeur de ce champ est invalide";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "En cours de chargement...";
+}
+
+Date.monthNames = [
+   "Janvier",
+   "Février",
+   "Mars",
+   "Avril",
+   "Mai",
+   "Juin",
+   "Juillet",
+   "Août",
+   "Septembre",
+   "Octobre",
+   "Novembre",
+   "Décembre"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "Dimanche",
+   "Lundi",
+   "Mardi",
+   "Mercredi",
+   "Jeudi",
+   "Vendredi",
+   "Samedi"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Annuler",
+      yes    : "Oui",
+      no     : "Non"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Aujourd'hui",
+      minText           : "Cette date est antérieure à la date minimum",
+      maxText           : "Cette date est postérieure à la date maximum",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames		: Date.monthNames,
+      dayNames			: Date.dayNames,
+      nextText          : 'Mois suivant (CTRL+Flèche droite)',
+      prevText          : "Mois précédent (CTRL+Flèche gauche)",
+      monthYearText     : "Choisissez un mois (CTRL+Flèche haut ou bas pour changer d'année.)",
+      todayTip          : "{0} (Barre d'espace)",
+      okText            : "&#160;OK&#160;",
+      cancelText        : "Annuler",
+      format            : "d/m/y",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Page",
+      afterPageText  : "sur {0}",
+      firstText      : "Première page",
+      prevText       : "Page précédente",
+      nextText       : "Page suivante",
+      lastText       : "Dernière page",
+      refreshText    : "Actualiser la page",
+      displayMsg     : "Page courante {0} - {1} sur {2}",
+      emptyMsg       : 'Aucune donnée à afficher'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "La longueur minimum de ce champ est de {0} caractères",
+      maxLengthText : "La longueur maximum de ce champ est de {0} caractères",
+      blankText     : "Ce champ est obligatoire",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "La valeur minimum de ce champ doit être de {0}",
+      maxText : "La valeur maximum de ce champ doit être de {0}",
+      nanText : "{0} n'est pas un nombre valide"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Désactivé",
+      disabledDatesText : "Désactivé",
+      minText           : "La date de ce champ ne peut être antérieure au {0}",
+      maxText           : "La date de ce champ ne peut être postérieure au {0}",
+      invalidText       : "{0} n'est pas une date valide - elle doit être au format suivant: {1}",
+      format            : "d/m/y",
+      altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "En cours de chargement...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Ce champ doit contenir une adresse email au format: "usager at domaine.com"',
+      urlText      : 'Ce champ doit contenir une URL au format suivant: "http:/'+'/www.domaine.com"',
+      alphaText    : 'Ce champ ne peut contenir que des lettres et le caractère souligné (_)',
+      alphanumText : 'Ce champ ne peut contenir que des caractères alphanumériques ainsi que le caractère souligné (_)'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+   Ext.apply(Ext.form.HtmlEditor.prototype, {
+      createLinkText : "Veuillez entrer l'URL pour ce lien:",
+          buttonTips : {
+              bold : {
+                  title: 'Gras (Ctrl+B)',
+                  text: 'Met le texte sélectionné en gras.',
+                  cls: 'x-html-editor-tip'
+              },
+              italic : {
+                  title: 'Italique (Ctrl+I)',
+                  text: 'Met le texte sélectionné en italique.',
+                  cls: 'x-html-editor-tip'
+              },
+              underline : {
+                  title: 'Souligné (Ctrl+U)',
+                  text: 'Souligne le texte sélectionné.',
+                  cls: 'x-html-editor-tip'
+              },
+              increasefontsize : {
+                  title: 'Agrandir la police',
+                  text: 'Augmente la taille de la police.',
+                  cls: 'x-html-editor-tip'
+              },
+              decreasefontsize : {
+                  title: 'Réduire la police',
+                  text: 'Réduit la taille de la police.',
+                  cls: 'x-html-editor-tip'
+              },
+              backcolor : {
+                  title: 'Couleur de surbrillance',
+                  text: 'Modifie la couleur de fond du texte sélectionné.',
+                  cls: 'x-html-editor-tip'
+              },
+              forecolor : {
+                  title: 'Couleur de police',
+                  text: 'Modifie la couleur du texte sélectionné.',
+                  cls: 'x-html-editor-tip'
+              },
+              justifyleft : {
+                  title: 'Aligner à gauche',
+                  text: 'Aligne le texte à gauche.',
+                  cls: 'x-html-editor-tip'
+              },
+              justifycenter : {
+                  title: 'Centrer',
+                  text: 'Centre le texte.',
+                  cls: 'x-html-editor-tip'
+              },
+              justifyright : {
+                  title: 'Aligner à droite',
+                  text: 'Aligner le texte à droite.',
+                  cls: 'x-html-editor-tip'
+              },
+              insertunorderedlist : {
+                  title: 'Liste à puce',
+                  text: 'Démarre une liste à puce.',
+                  cls: 'x-html-editor-tip'
+              },
+              insertorderedlist : {
+                  title: 'Liste numérotée',
+                  text: 'Démarre une liste numérotée.',
+                  cls: 'x-html-editor-tip'
+              },
+              createlink : {
+                  title: 'Lien hypertexte',
+                  text: 'Transforme en lien hypertexte.',
+                  cls: 'x-html-editor-tip'
+              },
+              sourceedit : {
+                  title: 'Code source',
+                  text: 'Basculer en mode édition du code source.',
+                  cls: 'x-html-editor-tip'
+              }
+        }
+   });
+}
+
+if(Ext.form.TimeField){
+   Ext.apply(Ext.form.TimeField.prototype, {
+      minText     : "L'heure de ce champ ne peut être antérieure au {0}",
+      maxText     : "L'heure de ce champ ne peut être postérieure au {0}",
+      invalidText : "{0} n'est pas une heure valide",
+      format      : "H:i",
+      altFormats  : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|h a|g a|g A|gi|hi|Hi|gia|hia|g|H"
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Tri croissant",
+      sortDescText : "Tri décroissant",
+      lockText     : "Verrouiller la colonne",
+      unlockText   : "Déverrouiller la colonne",
+      columnsText  : "Colonnes"
+   });
+}
+
+if(Ext.grid.GroupingView){
+   Ext.apply(Ext.grid.GroupingView.prototype, {
+      emptyGroupText : '(Aucun)',
+      groupByText    : 'Grouper par ce champ',
+      showGroupsText : 'Afficher par groupes'
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Propriété",
+      valueText  : "Valeur",
+      dateFormat : "d/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Cliquer et glisser pour redimensionner le panneau.",
+      collapsibleSplitTip : "Cliquer et glisser pour redimensionner le panneau. Double-cliquer pour le cacher."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr_CA.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr_CA.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-fr_CA.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,170 @@
+/*
+ * France (Canadian) translation
+ * By BernardChhun
+ * 04-08-2007, 03:07 AM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">En cours de chargement...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} ligne(s) sélectionné(s)";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Fermer cette onglet";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "La valeur de ce champ est invalide";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "En cours de chargement...";
+}
+
+Date.monthNames = [
+   "Janvier",
+   "Février",
+   "Mars",
+   "Avril",
+   "Mai",
+   "Juin",
+   "Juillet",
+   "Août",
+   "Septembre",
+   "Octobre",
+   "Novembre",
+   "Décembre"
+];
+
+Date.dayNames = [
+   "Dimanche",
+   "Lundi",
+   "Mardi",
+   "Mercredi",
+   "Jeudi",
+   "Vendredi",
+   "Samedi"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Annuler",
+      yes    : "Oui",
+      no     : "Non"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Aujourd'hui",
+      minText           : "Cette date est plus petite que la date minimum",
+      maxText           : "Cette date est plus grande que la date maximum",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Prochain mois (CTRL+Fléche droite)',
+      prevText          : 'Mois précédent (CTRL+Fléche gauche)',
+      monthYearText     : 'Choissisez un mois (CTRL+Fléche haut ou bas pour changer d\'année.)',
+      todayTip          : "{0} (Barre d'espace)",
+      format            : "d/m/y"
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Page",
+      afterPageText  : "de {0}",
+      firstText      : "Première page",
+      prevText       : "Page précédente",
+      nextText       : "Prochaine page",
+      lastText       : "Dernière page",
+      refreshText    : "Recharger la page",
+      displayMsg     : "Page courante {0} - {1} de {2}",
+      emptyMsg       : 'Aucune donnée à afficher'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "La longueur minimum de ce champ est de {0} caractères",
+      maxLengthText : "La longueur maximum de ce champ est de {0} caractères",
+      blankText     : "Ce champ est obligatoire",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "La valeur minimum de ce champ doit être de {0}",
+      maxText : "La valeur maximum de ce champ doit être de {0}",
+      nanText : "{0} n'est pas un nombre valide"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Désactivé",
+      disabledDatesText : "Désactivé",
+      minText           : "La date de ce champ doit être avant le {0}",
+      maxText           : "La date de ce champ doit être après le {0}",
+      invalidText       : "{0} n'est pas une date valide - il doit être au format suivant: {1}",
+      format            : "d/m/y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "En cours de chargement...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Ce champ doit contenir un courriel et doit être sous ce format: "usager at domaine.com"',
+      urlText      : 'Ce champ doit contenir une URL sous le format suivant: "http:/'+'/www.domaine.com"',
+      alphaText    : 'Ce champ ne peut contenir que des lettres et le caractère souligné (_)',
+      alphanumText : 'Ce champ ne peut contenir que des caractères alphanumériques ainsi que le caractère souligné (_)'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Tri ascendant",
+      sortDescText : "Tri descendant",
+      lockText     : "Verrouillé la colonne",
+      unlockText   : "Déverrouillé la colonne",
+      columnsText  : "Colonnes"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Propriété",
+      valueText  : "Valeur",
+      dateFormat : "d/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Cliquer et glisser pour redimensionner le panneau.",
+      collapsibleSplitTip : "Cliquer et glisser pour redimensionner le panneau. Double-cliquer pour cacher le panneau."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-gr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-gr.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-gr.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,169 @@
+/**
+ * Greek (Old Version) Translations by Vagelis
+ * 03-June-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Öüñôùóç...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} åðéëåãìÝíç(åò) ãñáììÞ(Ýò)";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Êëåßóôå áõôÞ ôçí êáñôÝëá";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Ç ôéìÞ óôï ðåäßï äåí åßíáé Ýãêõñç";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Öüñôùóç...";
+}
+
+Date.monthNames = [
+   "ÉáíïõÜñéïò",
+   "ÖåâñïõÜñéïò",
+   "ÌÜñôéïò",
+   "Áðñßëéïò",
+   "ÌÜéïò",
+   "Éïýíéïò",
+   "Éïýëéïò",
+   "Áýãïõóôïò",
+   "ÓåðôÝìâñéïò",
+   "Ïêôþâñéïò",
+   "ÍïÝìâñéïò",
+   "ÄåêÝìâñéïò"
+];
+
+Date.dayNames = [
+   "ÊõñéáêÞ",
+   "ÄåõôÝñá",
+   "Ôñßôç",
+   "ÔåôÜñôç",
+   "ÐÝìðôç",
+   "ÐáñáóêåõÞ",
+   "ÓÜââáôï"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "ÅíôÜîåé",
+      cancel : "Áêýñùóç",
+      yes    : "Íáé",
+      no     : "¼÷é"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "ì/ç/Å");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "ÓÞìåñá",
+      minText           : "Ç çìåñïìçíßá áõôÞ åßíáé ðñéí ôçí ìéêñüôåñç çìåñïìçíßá",
+      maxText           : "Ç çìåñïìçíßá áõôÞ åßíáé ìåôÜ ôçí ìåãáëýôåñç çìåñïìçíßá",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Åðüìåíïò ÌÞíáò (Control+Right)',
+      prevText          : 'Ðñïçãïýìåíïò ÌÞíáò (Control+Left)',
+      monthYearText     : 'ÅðéëÝîôå ÌÞíá (Control+Up/Down ãéá ìåôáêßíçóç óôá Ýôç)',
+      todayTip          : "{0} (Spacebar)",
+      format            : "ì/ç/Å"
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Óåëßäá",
+      afterPageText  : "áðü {0}",
+      firstText      : "Ðñþôç óåëßäá",
+      prevText       : "Ðñïçãïýìåíç óåëßäá",
+      nextText       : "Åðüìåíç óåëßäá",
+      lastText       : "Ôåëåõôáßá óåëßäá",
+      refreshText    : "ÁíáíÝùóç",
+      displayMsg     : "ÅìöÜíéóç {0} - {1} áðü {2}",
+      emptyMsg       : 'Äåí âñÝèçêáí åããñáöÝò ãéá åìöÜíéóç'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Ôï åëÜ÷éóôï ìÝãåèïò ãéá áõôü ôï ðåäßï åßíáé {0}",
+      maxLengthText : "Ôï ìÝãéóôï ìÝãåèïò ãéá áõôü ôï ðåäßï åßíáé {0}",
+      blankText     : "Ôï ðåäßï áõôü åßíáé õðï÷ñåùôïêü",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Ç åëÜ÷éóôç ôéìÞ ãéá áõôü ôï ðåäßï åßíáé {0}",
+      maxText : "Ç ìÝãéóôç ôéìÞ ãéá áõôü ôï ðåäßï åßíáé {0}",
+      nanText : "{0} äåí åßíáé Ýãêõñïò áñéèìüò"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "ÁðåíåñãïðïéçìÝíï",
+      disabledDatesText : "ÁðåíåñãïðïéçìÝíï",
+      minText           : "Ç çìåñïìçíßá ó' áõôü ôï ðåäßï ðñÝðåé íá åßíáé ìåôÜ áðü {0}",
+      maxText           : "Ç çìåñïìçíßá ó' áõôü ôï ðåäßï ðñÝðåé íá åßíáé ðñéí áðü {0}",
+      invalidText       : "{0} äåí åßíáé Ýãêõñç çìåñïìçíßá - ðñÝðåé íá åßíáé ôçò ìïñöÞò {1}",
+      format            : "ì/ç/Å"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Öüñôùóç...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Áõôü ôï ðåäßï ðñÝðåé íá åßíáé e-mail address ôçò ìïñöÞò "user at domain.com"',
+      urlText      : 'Áõôü ôï ðåäßï ðñÝðåé íá åßíáé ìéá äéåýèõíóç URL ôçò ìïñöÞò "http:/'+'/www.domain.com"',
+      alphaText    : 'Áõôü ôï ðåäßï ðñÝðåé íá ðåñéÝ÷åé ãñÜììáôá êáé _',
+      alphanumText : 'Áõôü ôï ðåäßï ðñÝðåé íá ðåñéÝ÷åé ãñÜììáôá, áñéèìïýò êáé _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Áýîïõóá Ôáîéíüìçóç",
+      sortDescText : "Öèßíïõóá Ôáîéíüìçóç",
+      lockText     : "Êëåßäùìá óôÞëçò",
+      unlockText   : "Îåêëåßäùìá óôÞëçò",
+      columnsText  : "ÓôÞëåò"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "¼íïìá",
+      valueText  : "ÔéìÞ",
+      dateFormat : "ì/ç/Å"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Óýñåôå ãéá áëëáãÞ ìåãÝèïõò.",
+      collapsibleSplitTip : "Óýñåôå ãéá áëëáãÞ ìåãÝèïõò. Double click ãéá áðüêñõøç."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-he.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-he.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-he.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,286 @@
+/**
+ * Hebrew Translations
+ * By spartacus (from forums) 06-12-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">...èåòï</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "ùåøåú ðáçøåú {0}";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "ñâåø ìùåðéú";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "äòøê áùãä æä ùâåé";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "...èåòï";
+}
+
+Date.monthNames = [
+  "éðåàø",
+  "ôáøåàø",
+  "îøõ",
+  "àôøéì",
+  "îàé",
+  "éåðé",
+  "éåìé",
+  "àåâåñè",
+  "ñôèîáø",
+  "àå÷èåáø",
+  "ðåáîáø",
+  "ãöîáø"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "à",
+  "á",
+  "â",
+  "ã",
+  "ä",
+  "å",
+  "ù"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "àéùåø",
+    cancel : "áéèåì",
+    yes    : "ëï",
+    no     : "ìà"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d/m/Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "äéåí",
+    minText           : ".úàøéê æä çì ÷åãí ìúàøéê ääúçìúé ùð÷áò",
+    maxText           : ".úàøéê æä çì ìàçø äúàøéê äñåôé ùð÷áò",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : '(Control+Right) äçåãù äáà',
+    prevText          : '(Control+Left) äçåãù ä÷åãí',
+    monthYearText     : '(ìáçéøú ùðä Control+Up/Down) áçø çåãù',
+    todayTip          : "î÷ù øååç) {0})",
+    format            : "d/m/Y",
+    okText            : "&#160;àéùåø&#160;",
+    cancelText        : "áéèåì",
+    startDay          : 0
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "òîåã",
+    afterPageText  : "{0} îúåê",
+    firstText      : "òîåã øàùåï",
+    prevText       : "òîåã ÷åãí",
+    nextText       : "òîåã äáà",
+    lastText       : "òîåã àçøåï",
+    refreshText    : "øòðï",
+    displayMsg     : "îöéâ {0} - {1} îúåê {2}",
+    emptyMsg       : 'àéï îéãò ìäöâä'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "{0} äàåøê äîéðéîàìé ìùãä æä äåà",
+    maxLengthText : "{0} äàåøê äîéøáé ìùãä æä äåà",
+    blankText     : "ùãä æä äëøçé",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "{0} äòøê äîéðéîàìé ìùãä æä äåà",
+    maxText : "{0} äòøê äîéøáé ìùãä æä äåà",
+    nanText : "äåà ìà îñôø {0}"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "îðåèøì",
+    disabledDatesText : "îðåèøì",
+    minText           : "{0} äúàøéê áùãä æä çééá ìäéåú ìàçø",
+    maxText           : "{0} äúàøéê áùãä æä çééá ìäéåú ìôðé",
+    invalidText       : "{1} äåà ìà úàøéê ú÷ðé - çééá ìäéåú áôåøîè {0}",
+    format            : "m/d/y",
+    altFormats        : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "...èåòï",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : '"user at domain.com" ùãä æä öøéê ìäéåú ëúåáú ãåàø àì÷èøåðé áôåøîè',
+    urlText      : '"http:/'+'/www.domain.com" ùãä æä öøéê ìäéåú ëúåáú àéðèøðè áôåøîè',
+    alphaText    : '_ùãä æä éëåì ìäëéì ø÷ àåúéåú å',
+    alphanumText : '_ùãä æä éëåì ìäëéì ø÷ àåúéåú, îñôøéí å'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : ':àðà ä÷ìã àú ëúåáú äàéðèøðè òáåø ä÷éùåø',
+    buttonTips : {
+      bold : {
+        title: '(Ctrl+B) îåãâù',
+        text: '.äãâù àú äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: '(Ctrl+I) ðèåé',
+        text: '.äèä àú äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: '(Ctrl+U) ÷å úçúé',
+        text: '.äåñó ÷ï úçúé òáåø äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'äâãì è÷ñè',
+        text: '.äâãì âåôï òáåø äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'ä÷èï è÷ñè',
+        text: '.ä÷èï âåôï òáåø äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'öáò ø÷ò ìè÷ñè',
+        text: '.ùðä àú öáò äø÷ò òáåø äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'öáò âåôï',
+        text: '.ùðä àú öáò äâåôï òáåø äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'éùåø ìùîàì',
+        text: '.éùø ùîàìä àú äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'éùåø ìîøëæ',
+        text: '.éùø ìîøëæ àú äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'éùåø ìéîéï',
+        text: '.éùø éîéðä àú äè÷ñè äðáçø',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'øùéîú ð÷åãåú',
+        text: '.äúçì øùéîú ð÷åãåú',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'øùéîä îîåñôøú',
+        text: '.äúçì øùéîä îîåñôøú',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: '÷éùåø',
+        text: '.äôåê àú äè÷ñè äðáçø ì÷éùåø',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'òøéëú ÷åã î÷åø',
+        text: '.äöâ ÷åã î÷åø',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "îééï áñãø òåìä",
+    sortDescText : "îééï áñãø éåøã",
+    lockText     : "ðòì òîåãä",
+    unlockText   : "ùçøø òîåãä",
+    columnsText  : "òîåãåú"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(øé÷)',
+    groupByText    : 'äöâ á÷áåöåú ìôé ùãä æä',
+    showGroupsText : 'äöâ á÷áåöåú'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "ùí",
+    valueText  : "òøê",
+    dateFormat : "m/j/Y"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : ".îùåê ìùéðåé âåãì",
+    collapsibleSplitTip : ".îùåê ìùéðåé âåãì. ìçéöä ëôåìä ìäñúøä"
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hr.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hr.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,171 @@
+/*
+ * Croatian translation
+ * By Ylodi (utf8 encoding)
+ * 8 May 2007
+ */
+ 
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Učitavanje...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} odabranih redova";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Zatvori ovaj tab";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Unesena vrijednost u ovom polju je neispravna";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Učitavanje...";
+}
+
+Date.monthNames = [
+   "Siječanj",
+   "Veljača",
+   "Ožujak",
+   "Travanj",
+   "Svibanj",
+   "Lipanj",
+   "Srpanj",
+   "Kolovoz",
+   "Rujan",
+   "Listopad",
+   "Studeni",
+   "Prosinac"
+];
+
+Date.dayNames = [
+   "Nedjelja",
+   "Ponedjeljak",
+   "Utorak",
+   "Srijeda",
+   "ÄŒetvrtak",
+   "Petak",
+   "Subota"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "U redu",
+      cancel : "Odustani",
+      yes    : "Da",
+      no     : "Ne"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Danas",
+      minText           : "Taj datum je prije najmanjeg datuma",
+      maxText           : "Taj datum je poslije najvećeg datuma",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Slijedeći mjesec (Control+Desno)',
+      prevText          : 'Prethodni mjesec (Control+Lijevo)',
+      monthYearText     : 'Odaberite mjesec (Control+Gore/Dolje za promjenu godine)',
+      todayTip          : "{0} (Razmaknica)",
+      format            : "d.m.y",
+      startDay 		 : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Stranica",
+      afterPageText  : "od {0}",
+      firstText      : "Prva stranica",
+      prevText       : "Prethodna stranica",
+      nextText       : "Slijedeća stranica",
+      lastText       : "Posljednja stranica",
+      refreshText    : "Obnovi",
+      displayMsg     : "Prikazujem {0} - {1} od {2}",
+      emptyMsg       : 'Nema podataka za prikaz'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Minimalna dužina za ovo polje je {0}",
+      maxLengthText : "Maksimalna dužina za ovo polje je {0}",
+      blankText     : "Ovo polje je obavezno",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Minimalna vrijednost za ovo polje je {0}",
+      maxText : "Maksimalna vrijednost za ovo polje je {0}",
+      nanText : "{0} nije ispravan broj"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Neaktivno",
+      disabledDatesText : "Neaktivno",
+      minText           : "Datum u ovom polje mora biti poslije {0}",
+      maxText           : "Datum u ovom polju mora biti prije {0}",
+      invalidText       : "{0} nije ispravan datum - mora biti u obliku {1}",
+      format            : "d.m.y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Učitavanje...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Ovdje možete unijeti samo e-mail adresu u obliku "korisnik at domena.com"',
+      urlText      : 'Ovdje možete unijeti samo URL u obliku "http:/'+'/www.domena.com"',
+      alphaText    : 'Ovo polje može sadržavati samo slova i znak _',
+      alphanumText : 'Ovo polje može sadržavati samo slova, brojeve i znak _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Sortiraj rastućim redoslijedom",
+      sortDescText : "Sortiraj padajućim redoslijedom",
+      lockText     : "Zaključaj stupac",
+      unlockText   : "Otključaj stupac",
+      columnsText  : "Stupci"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Naziv",
+      valueText  : "Vrijednost",
+      dateFormat : "d.m.Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Povuci za promjenu veličine.",
+      collapsibleSplitTip : "Povuci za promjenu veličine. Dvostruki klik za skrivanje."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hu.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hu.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-hu.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,291 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ */
+/*
+ * Hungarian translation
+ * By amon  <amon at theba.hu> (utf-8 encoded)
+ * 09 February 2008
+ */
+ 
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Betöltés...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} kiválasztott sor";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Fül bezárása";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "A mezőben lévő adat nem megfelelő";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Betöltés...";
+}
+
+Date.monthNames = [
+  "Január",
+  "Február",
+  "Március",
+  "Április",
+  "Május",
+  "Június",
+  "Július",
+  "Augusztus",
+  "Szeptember",
+  "Október",
+  "November",
+  "December"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Vasárnap",
+  "Hétfő",
+  "Kedd",
+  "Szerda",
+  "Csütörtök",
+  "Péntek",
+  "Szombat"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "OK",
+    cancel : "Mégsem",
+    yes    : "Igen",
+    no     : "Nem"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "Y-m-d");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Mai nap",
+    minText           : "A dátum korábbi a megengedettnél",
+    maxText           : "A dárum későbbi a megengedettnél",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Köv. hónap (Ctrl+Jobbra)',
+    prevText          : 'Előző hónap (Ctrl+Balra)',
+    monthYearText     : 'Válassz hónapot (Évválasztás: Ctrl+Fel/Le)',
+    todayTip          : "{0} (Szóköz)",
+    format            : "Y-m-d",
+    okText            : "&#160;OK&#160;",
+    cancelText        : "Mégsem",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Oldal",
+    afterPageText  : "a {0}-ból/ből",
+    firstText      : "Első oldal",
+    prevText       : "Előző oldal",
+    nextText       : "Következő oldal",
+    lastText       : "Utolsó oldal",
+    refreshText    : "Frissít",
+    displayMsg     : "{0} - {1} sorok láthatók a {2}-ból/ből",
+    emptyMsg       : 'Nincs megjeleníthető adat'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "A mező tartalma legalább {0} hosszú kell legyen",
+    maxLengthText : "A mező tartalma nem lehet hosszabb {0}-nál/nél",
+    blankText     : "Kötelezően kitöltendő mező",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "A mező tartalma nem lehet kissebb, mint {0}",
+    maxText : "A mező tartalma nem lehet nagyobb, mint {0}",
+    nanText : "{0} nem szám"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Nem választható",
+    disabledDatesText : "Nem választható",
+    minText           : "A dátum nem lehet korábbi, mint {0}",
+    maxText           : "A dátum nem lehet későbbi, mint {0}",
+    invalidText       : "{0} nem megfelelő dátum - a megfelelő formátum {1}",
+    format            : "y-m-d",
+    altFormats        : "y m d|y. m. d.|m d|m-d|md|ymd|Ymd|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Betöltés...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'A mezőbe e-mail címet kell írni ebben a formátumban: "felhasználó@szerver.hu"',
+    urlText      : 'A mezőbe webcímet kell írni ebben a formátumban: "http:/'+'/www.weboldal.hu"',
+    alphaText    : 'A mező csak betűket és aláhúzást (_) tartalmazhat',
+    alphanumText : 'A mező csak betűket, számokat és aláhúzást (_) tartalmazhat'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Kérlek add meg a webcímet:',
+    buttonTips : {
+      bold : {
+        title: 'Félkövér (Ctrl+B)',
+        text: 'Félkövérré teszi a szöveget.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'DÅ‘lt (Ctrl+I)',
+        text: 'Dőltté teszi a szöveget.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Aláhúzás (Ctrl+U)',
+        text: 'Aláhúzza a szöveget.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Betűméret növlés',
+        text: 'Növeli a szöveg betűméretét.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Betűméret csökkentés',
+        text: 'Csökkenti a szöveg betűméretét.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Háttérszín',
+        text: 'A kijelölt szöveg háttérszínét változtatja meg.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Betűszín',
+        text: 'A kijelölt szöveg betűszínét változtatja meg.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Balra igazít',
+        text: 'A szöveget balra igazítja.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Középre igazít',
+        text: 'A szöveget középre igazítja.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Jobbra igazít',
+        text: 'A szöveget jobbra igazítja.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Felsorolás',
+        text: 'Felsorolást nyit.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Számozott lista',
+        text: 'Számozott listát nyit.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hiperlink',
+        text: 'Hiperlinkké teszi a kijelölt szöveget.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Forráskód',
+        text: 'Forráskód üzemmódba vált.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Növekvő rendezés",
+    sortDescText : "Csökkenő rendezés",
+    lockText     : "Oszlop zárolása",
+    unlockText   : "Oszlop felengedése",
+    columnsText  : "Oszlopok"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(nincs)',
+    groupByText    : 'Mező szerint csoportosít',
+    showGroupsText : 'Csoportosított megjelenítés'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Név",
+    valueText  : "Érték",
+    dateFormat : "Y j m"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Átméretezés húzásra.",
+    collapsibleSplitTip : "Átméretezés húzásra. Eltüntetés duplaklikk."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-id.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-id.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-id.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,296 @@
+/**
+ * Pedoman translasi:
+ * http://id.wikisource.org/wiki/Panduan_Pembakuan_Istilah,_Pelaksanaan_Instruksi_Presiden_Nomor_2_Tahun_2001_Tentang_Penggunaan_Komputer_Dengan_Aplikasi_Komputer_Berbahasa_Indonesia
+ *Original source: http://vlsm.org/etc/baku-0.txt
+ * by Farid GS
+ * farid [at] pulen.net
+ * 10:13 04 Desember 2007
+ * Indonesian Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Pemuatan...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} selected row(s)";
+  Ext.grid.Grid.prototype.ddText = "{0} baris terpilih";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Close this tab";
+  Ext.TabPanelItem.prototype.closeText = "Tutup tab ini";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+  Ext.form.Field.prototype.invalidText = "Isian belum benar";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Loading...";
+  Ext.LoadMask.prototype.msg = "Pemuatan...";
+}
+
+Date.monthNames = [
+  "Januari",
+  "Februari",
+  "Maret",
+  "April",
+  "Mei",
+  "Juni",
+  "Juli",
+  "Agustus",
+  "September",
+  "Oktober",
+  "November",
+  "Desember"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  Mei : 4,
+  Jun : 5,
+  Jul : 6,
+  Agu : 7,
+  Sep : 8,
+  Okt : 9,
+  Nov : 10,
+  Des : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Minggu",
+  "Senin",
+  "Selasa",
+  "Rabu",
+  "Kamis",
+  "Jumat",
+  "Sabtu"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "OK",
+    cancel : "Batal",
+    yes    : "Ya",
+    no     : "Tidak"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d/m/Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Hari ini",
+    minText           : "Tanggal ini sebelum batas tanggal minimal", 
+    maxText           : "Tanggal ini setelah batas tanggal maksimal", 
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Bulan Berikut (Kontrol+Kanan)', 
+    prevText          : 'Bulan Sebelum (Kontrol+Kiri)', 
+    monthYearText     : 'Pilih bulan (Kontrol+Atas/Bawah untuk pindah tahun)', 
+    todayTip          : "{0} (Spacebar)",
+    format            : "d/m/y",
+    okText            : "&#160;OK&#160;",
+    cancelText        : "Batal",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Hal",
+    afterPageText  : "dari {0}",
+    firstText      : "Hal. Pertama",
+    prevText       : "Hal. Sebelum",
+    nextText       : "Hal. Berikut",
+    lastText       : "Hal. Akhir",
+    refreshText    : "Segarkan", 
+    displayMsg     : "Menampilkan {0} - {1} dari {2}",
+    emptyMsg       : 'Data tidak ditemukan' 
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "Panjang minimal untuk field ini adalah {0}",  
+    maxLengthText : "Panjang maksimal untuk field ini adalah {0}", 
+    blankText     : "Field ini wajib diisi", 
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "Nilai minimal untuk field ini adalah {0}",  
+    maxText : "Nilai maksimal untuk field ini adalah {0}",  
+    nanText : "{0} bukan angka" 
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Disfungsi",  
+    disabledDatesText : "Disfungsi",  
+    minText           : "Tanggal dalam field ini harus setelah {0}", 
+    maxText           : "Tanggal dalam field ini harus sebelum {0}", 
+    invalidText       : "{0} tanggal salah - Harus dalam format {1}", 
+    format            : "d/m/y", 
+    //altFormats        : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+    altFormats        : "d/m/Y|d-m-y|d-m-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Pemuatan...",  
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'Field ini harus dalam format email seperti "user at domain.com"', 
+    urlText      : 'Field ini harus dalam format URL seperti "http:/'+'/www.domain.com"', 
+    alphaText    : 'Field ini harus terdiri dari huruf dan _', 
+    alphanumText : 'Field ini haris terdiri dari huruf, angka dan _'  
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Silakan masukkan URL untuk tautan:', 
+    buttonTips : {
+      bold : {
+        title: 'Tebal (Ctrl+B)', 
+        text: 'Buat tebal teks terpilih', 
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Miring (CTRL+I)', 
+        text: 'Buat miring teks terpilih', 
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Garisbawah (CTRl+U)', 
+        text: 'Garisbawahi teks terpilih', 
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Perbesar teks', 
+        text: 'Perbesar ukuran fonta', 
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Perkecil teks',  
+        text: 'Perkecil ukuran fonta', 
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Sorot Warna Teks',  
+        text: 'Ubah warna latar teks terpilih', 
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Warna Fonta', 
+        text: 'Ubah warna teks terpilih',  
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Rata Kiri', 
+        text: 'Ratakan teks ke kiri', 
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Rata Tengah', 
+        text: 'Ratakan teks ke tengah editor', 
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Rata Kanan', 
+        text: 'Ratakan teks ke kanan', 
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Daftar Bulet', 
+        text: 'Membuat daftar berbasis bulet', 
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Daftar Angka', 
+        text: 'Membuat daftar berbasis angka', 
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hipertaut', 
+        text: 'Buat teks terpilih sebagai Hipertaut', 
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Edit Kode Sumber', 
+        text: 'Pindah dalam mode kode sumber', 
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Urut Naik", 
+    sortDescText : "Urut Turun", 
+    lockText     : "Kancing Kolom", 
+    unlockText   : "Lepas Kunci Kolom", 
+    columnsText  : "Kolom"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Kosong)', 
+    groupByText    : 'Kelompokkan Berdasar Field Ini', 
+    showGroupsText : 'Tampil Dalam Kelompok' 
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Nama", 
+    valueText  : "Nilai", 
+    dateFormat : "d/m/Y" 
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Seret untuk ubah ukuran.", 
+    collapsibleSplitTip : "Seret untuk ubah ukuran, Dobel klik untuk sembunyikan." 
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-it.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-it.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-it.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,289 @@
+/*
+ * Italian translation
+ * By eric_void
+ * 04-10-2007, 11:25 AM
+ * Updated by Federico Grilli 21/12/2007 
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Caricamento in corso...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} righe selezionate";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Chiudi pannello";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Valore non valido";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Caricamento in corso...";
+}
+
+Date.monthNames = [
+   "Gennaio",
+   "Febbraio",
+   "Marzo",
+   "Aprile",
+   "Maggio",
+   "Giugno",
+   "Luglio",
+   "Agosto",
+   "Settembre",
+   "Ottobre",
+   "Novembre",
+   "Dicembre"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "Domenica",
+   "Luned\u00EC",
+   "Marted\u00EC",
+   "Mercoled\u00EC",
+   "Gioved\u00EC",
+   "Venerd\u00EC",
+   "Sabato"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Annulla",
+      yes    : "S\u00EC",
+      no     : "No"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Oggi",
+      minText           : "Data precedente alla data minima",
+      maxText           : "Data successiva alla data massima",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames		: Date.monthNames,
+      dayNames			: Date.dayNames,
+      nextText          : 'Mese successivo (Ctrl+Destra)',
+      prevText          : 'Mese precedente (Ctrl+Sinistra)',
+      monthYearText     : 'Scegli un mese (Ctrl+Su/Giu per cambiare anno)',
+      todayTip          : "{0} (Barra spaziatrice)",
+      format            : "d/m/y",
+      cancelText		: "Annulla",
+	  okText            : "&#160;OK&#160;",
+	  startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Pagina",
+      afterPageText  : "di {0}",
+      firstText      : "Prima pagina",
+      prevText       : "Pagina precedente",
+      nextText       : "Pagina successiva",
+      lastText       : "Ultima pagina",
+      refreshText    : "Aggiorna",
+      displayMsg     : "Record {0} - {1} di {2}",
+      emptyMsg       : 'Nessun dato da mostrare'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "La lunghezza minima \u00E8 {0}",
+      maxLengthText : "La lunghezza massima \u00E8 {0}",
+      blankText     : "Campo obbligatorio",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Il valore minimo \u00E8 {0}",
+      maxText : "Il valore massimo \u00E8 {0}",
+      nanText : "{0} non \u00E8 un valore numerico corretto"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Disabilitato",
+      disabledDatesText : "Disabilitato",
+      minText           : "La data deve essere successiva al {0}",
+      maxText           : "La data deve essere precedente al {0}",
+      invalidText       : "{0} non \u00E8 una data valida. Deve essere nel formato {1}",
+      format            : "d/m/y",
+      altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Caricamento in corso...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Il campo deve essere un indirizzo e-mail nel formato "user at domain.com"',
+      urlText      : 'Il campo deve essere un indirizzo web nel formato "http:/'+'/www.domain.com"',
+      alphaText    : 'Il campo deve contenere solo lettere e _',
+      alphanumText : 'Il campo deve contenere solo lettere, numeri e _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Inserire un URL per il link:',
+    buttonTips : {
+      bold : {
+        title: 'Grassetto (Ctrl+B)',
+        text: 'Rende il testo selezionato in grassetto.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Corsivo (Ctrl+I)',
+        text: 'Rende il testo selezionato in corsivo.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Sottolinea (Ctrl+U)',
+        text: 'Sottolinea il testo selezionato.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Ingrandisci testo',
+        text: 'Aumenta la dimensione del carattere.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Rimpicciolisci testo',
+        text: 'Diminuisce la dimensione del carattere.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Colore evidenziatore testo',
+        text: 'Modifica il colore di sfondo del testo selezionato.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Colore carattere',
+        text: 'Modifica il colore del testo selezionato.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Allinea a sinistra',
+        text: 'Allinea il testo a sinistra.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Centra',
+        text: 'Centra il testo.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Allinea a destra',
+        text: 'Allinea il testo a destra.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Elenco puntato',
+        text: 'Elenco puntato.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Elenco numerato',
+        text: 'Elenco numerato.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Collegamento',
+        text: 'Trasforma il testo selezionato in un collegamanto.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Sorgente',
+        text: 'Passa alla modalit\u00E0 editing del sorgente.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Ordinamento crescente",
+      sortDescText : "Ordinamento decrescente",
+      lockText     : "Blocca colonna",
+      unlockText   : "Sblocca colonna",
+      columnsText  : "Colonne"
+   });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Nessun dato)',
+    groupByText    : 'Raggruppa per questo campo',
+    showGroupsText : 'Mostra nei gruppi'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Nome",
+      valueText  : "Valore",
+      dateFormat : "j/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Trascina per cambiare dimensioni.",
+      collapsibleSplitTip : "Trascina per cambiare dimensioni. Doppio click per nascondere."
+   });
+}
+

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ja.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ja.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ja.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,156 @@
+/*
+ * Japanese translation
+ * By tyama
+ * 04-08-2007, 05:49 AM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">読み込み中...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} 行選択";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "このタブを閉じる";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "フィールドの値が不正です。";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "読み込み中...";
+}
+
+Date.monthNames = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月','11月','12月'];
+
+Date.dayNames = [
+ "æ—¥",
+ "月",
+ "火",
+ "æ°´",
+ "木",
+ "金",
+ "土"];
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok : "OK",
+    cancel : "キャンセル",
+    yes : "はい",
+    no : "いいえ"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+     if(!v) return "";
+     if(!(v instanceof Date)) v = new Date(Date.parse(v));
+     return v.dateFormat(format || "Y/m/d");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+     todayText         : "今日",
+     minText           : "選択した日付は最小値以下です。",
+     maxText           : "選択した日付は最大値以上です。",
+     disabledDaysText  : "",
+     disabledDatesText : "",
+     monthNames	       : Date.monthNames,
+     dayNames	       : Date.dayNames,
+     nextText          : '次月へ (コントロール+右)',
+     prevText          : '前月へ (コントロール+左)',
+     monthYearText     : '月選択 (コントロール+上/下で年移動)',
+     todayTip          : "{0} (スペースキー)",
+     format            : "Y/m/d"
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+     beforePageText : "ページ",
+     afterPageText  : "/ {0}",
+     firstText      : "最初のページ",
+     prevText       : "前のページ",
+     nextText       : "次のページ",
+     lastText       : "最後のページ",
+     refreshText    : "æ›´æ–°",
+     displayMsg     : "{2} 件中 {0} - {1} を表示",
+     emptyMsg       : '表示するデータがありません。'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+     minLengthText : "このフィールドの最小値は {0} です。",
+     maxLengthText : "このフィールドの最大値は {0} です。",
+     blankText     : "必須項目です。",
+     regexText     : "",
+     emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+     minText : "このフィールドの最小値は {0} です。",
+     maxText : "このフィールドの最大値は {0} です。",
+     nanText : "{0} は数値ではありません。"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+     disabledDaysText  : "無効",
+     disabledDatesText : "無効",
+     minText           : "このフィールドの日付は、 {0} 以降の日付に設定してください。",
+     maxText           : "このフィールドの日付は、 {0} 以前の日付に設定してください。",
+     invalidText       : "{0} は間違った日付入力です。 - 入力形式は「{1}」です。",
+     format            : "Y/m/d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+     loadingText       : "読み込み中...",
+     valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+     emailText    : 'メールアドレスを"user at domain.com"の形式で入力してください。',
+     urlText      : 'URLを"http:/'+'/www.domain.com"の形式で入力してください。',
+     alphaText    : '半角英字と"_"のみです。',
+     alphanumText : '半角英数と"_"のみです。'
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+     sortAscText  : "昇順",
+     sortDescText : "降順",
+     lockText     : "カラムロック",
+     unlockText   : "カラムロック解除",
+     columnsText  : "Columns"
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+     nameText   : "名称",
+     valueText  : "値",
+     dateFormat : "Y/m/d"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+     splitTip            : "ドラッグするとリサイズできます。",
+     collapsibleSplitTip : "ドラッグでリサイズ。 ダブルクリックで隠す。"
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ko.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ko.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ko.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,252 @@
+/**
+ * Korean Translations
+ * By nicetip
+ * 05 September 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">로딩...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} 개가 선택되었습니다.";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "닫기";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "올바른 값이 아닙니다.";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "로딩...";
+}
+
+Date.monthNames = [
+   "1ì›”",
+   "2ì›”",
+   "3ì›”",
+   "4ì›”",
+   "5ì›”",
+   "6ì›”",
+   "7ì›”",
+   "8ì›”",
+   "9ì›”",
+   "10ì›”",
+   "11ì›”",
+   "12ì›”"
+];
+
+Date.dayNames = [
+   "일",
+   "ì›”",
+   "í™”",
+   "수",
+   "목",
+   "금",
+   "토"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "확인",
+      cancel : "취소",
+      yes    : "예",
+      no     : "아니오"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "m/d/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "오늘",
+      minText           : "최소 날짜범위를 넘었습니다.",
+      maxText           : "최대 날짜범위를 넘었습니다.",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : '다음달(컨트롤키+오른쪽 화살표)',
+      prevText          : '이전달 (컨트롤키+왼족 화살표)',
+      monthYearText     : '월을 선택해주세요. (컨트롤키+위/아래 화살표)',
+      todayTip          : "{0} (스페이스바)",
+      format            : "m/d/y",
+      okText		: "확인",
+      cancelText	: "취소",
+      startDay		: 0
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "페이지",
+      afterPageText  : "/ {0}",
+      firstText      : "첫 페이지",
+      prevText       : "이전 페이지",
+      nextText       : "다음 페이지",
+      lastText       : "마지막 페이지",
+      refreshText    : "새로고침",
+      displayMsg     : "전체 {2} 중 {0} - {1}",
+      emptyMsg       : '표시할 데이터가 없습니다.'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "최소길이는 {0}입니다.",
+      maxLengthText : "최대길이는 {0}입니다.",
+      blankText     : "값을 입력해주세요.",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "최소값은 {0}입니다.",
+      maxText : "최대값은 {0}입니다.",
+      nanText : "{0}는 올바른 숫자가 아닙니다."
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "비활성",
+      disabledDatesText : "비활성",
+      minText           : "{0}일 이후여야 합니다.",
+      maxText           : "{0}일 이전이어야 합니다.",
+      invalidText       : "{0}는 올바른 날짜형식이 아닙니다. - 다음과 같은 형식이어야 합니다. {1}",
+      format            : "m/d/y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "로딩...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : '이메일 주소 형식에 맞게 입력해야합니다. (예: "user at domain.com")',
+      urlText      : 'URL 형식에 맞게 입력해야합니다. (예: "http:/'+'/www.domain.com")',
+      alphaText    : '영문, 밑줄(_)만 입력할 수 있습니다.',
+      alphanumText : '영문, 숫자, 밑줄(_)만 입력할 수 있습니다.'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+   Ext.apply(Ext.form.HtmlEditor.prototype, {
+	 createLinkText : 'URL을 입력해주세요:',
+	 buttonTips : {
+            bold : {
+               title: '굵게 (Ctrl+B)',
+               text: '선택한 텍스트를 굵게 표시합니다.',
+               cls: 'x-html-editor-tip'
+            },
+            italic : {
+               title: '기울임꼴 (Ctrl+I)',
+               text: '선택한 텍스트를 기울임꼴로 표시합니다.',
+               cls: 'x-html-editor-tip'
+            },
+            underline : {
+               title: '밑줄 (Ctrl+U)',
+               text: '선택한 텍스트에 밑줄을 표시합니다.',
+               cls: 'x-html-editor-tip'
+           },
+           increasefontsize : {
+               title: '글꼴크기 늘림',
+               text: '글꼴 크기를 크게 합니다.',
+               cls: 'x-html-editor-tip'
+           },
+           decreasefontsize : {
+               title: '글꼴크기 줄임',
+               text: '글꼴 크기를 작게 합니다.',
+               cls: 'x-html-editor-tip'
+           },
+           backcolor : {
+               title: '텍스트 강조 색',
+               text: '선택한 텍스트의 배경색을 변경합니다.',
+               cls: 'x-html-editor-tip'
+           },
+           forecolor : {
+               title: '글꼴색',
+               text: '선택한 텍스트의 색을 변경합니다.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyleft : {
+               title: '텍스트 왼쪽 맞춤',
+               text: '왼쪽에 텍스트를 맞춥니다.',
+               cls: 'x-html-editor-tip'
+           },
+           justifycenter : {
+               title: '가운데 맞춤',
+               text: '가운데에 텍스트를 맞춥니다.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyright : {
+               title: '텍스트 오른쪽 맞춤',
+               text: '오른쪽에 텍스트를 맞춥니다.',
+               cls: 'x-html-editor-tip'
+           },
+           insertunorderedlist : {
+               title: '글머리 기호',
+               text: '글머리 기호 목록을 시작합니다.',
+               cls: 'x-html-editor-tip'
+           },
+           insertorderedlist : {
+               title: '번호 매기기',
+               text: '번호 매기기 목록을 시작합니다.',
+               cls: 'x-html-editor-tip'
+           },
+           createlink : {
+               title: '하이퍼링크',
+               text: '선택한 텍스트에 하이퍼링크를 만듭니다.',
+               cls: 'x-html-editor-tip'
+           },
+           sourceedit : {
+               title: '소스편집',
+               text: '소스편집 모드로 변환합니다.',
+               cls: 'x-html-editor-tip'
+           }
+        }
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "오름차순 정렬",
+      sortDescText : "내림차순 정렬",
+      lockText     : "칼럼 잠금",
+      unlockText   : "칼럼 잠금해제",
+      columnsText  : "칼럼 목록"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "항목",
+      valueText  : "ê°’",
+      dateFormat : "m/j/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "크기변경을 위해 드래그하세요.",
+      collapsibleSplitTip : "크기변경을 위해 드래그, 숨기기 위해 더블클릭 하세요."
+   });
+}
+

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lt.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lt.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lt.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,299 @@
+/**
+ * Lithuanian Translations (UTF-8)
+ * By Vladas Saulis, October 18, 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Kraunasi...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} pažymėta";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Uždaryti šią užsklandą";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "Šio lauko reikšmė neteisinga";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Kraunasi...";
+}
+
+Date.monthNames = [
+  "Saulis",
+  "Vasaris",
+  "Kovas",
+  "Balandis",
+  "Gegužė",
+  "Birželis",
+  "Liepa",
+  "Rugpjūtis",
+  "RugsÄ—jis",
+  "Spalis",
+  "Lapkritis",
+  "Gruodis"
+];
+
+Date.getShortMonthName = function(month) {
+  return [
+    "Sau",
+    "Vas",
+    "Kov",
+    "Bal",
+    "Geg",
+    "Bir",
+    "Lie",
+    "Rgp",
+    "Rgs",
+    "Spa",
+    "Lap",
+    "Grd"
+    ];
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Pirmadienis",
+  "Antradienis",
+  "Trečiadienis",
+  "Ketvirtadienis",
+  "Penktadienis",
+  "Šeštadienis",
+  "Sekmadienis"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "Gerai",
+    cancel : "Atsisakyti",
+    yes    : "Taip",
+    no     : "Ne"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "Y-m-d");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Å iandien",
+    minText           : "Ši data yra mažesnė už leistiną",
+    maxText           : "Ši data yra didesnė už leistiną",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Next Month (Control+Right)',
+    prevText          : 'Previous Month (Control+Left)',
+    monthYearText     : 'Choose a month (Control+Up/Down perėjimui tarp metų)',
+    todayTip          : "{0} (Spacebar)",
+    format            : "y-m-d",
+    okText            : "&#160;Gerai&#160;",
+    cancelText        : "Atsisaktyi",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Puslapis",
+    afterPageText  : "iš {0}",
+    firstText      : "Pirmas puslapis",
+    prevText       : "Ankstesnis pusl.",
+    nextText       : "Kitas puslapis",
+    lastText       : "Pakutinis pusl.",
+    refreshText    : "Atnaujinti",
+    displayMsg     : "Rodomi įrašai {0} - {1} iš {2}",
+    emptyMsg       : 'Nėra duomenų'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "Minimalus Å¡io lauko ilgis yra {0}",
+    maxLengthText : "Maksimalus Å¡io lauko ilgis yra {0}",
+    blankText     : "Å is laukas yra reikalingas",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "Minimalus Å¡io lauko ilgis yra {0}",
+    maxText : "Maksimalus Å¡io lauko ilgis yra {0}",
+    nanText : "{0} yra neleistina reikšmė"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Neprieinama",
+    disabledDatesText : "Neprieinama",
+    minText           : "Šiame lauke data turi būti didesnė už {0}",
+    maxText           : "Šiame lauke data turi būti mažesnėė už {0}",
+    invalidText       : "{0} yra neteisinga data - ji turi būti įvesta formatu {1}",
+    format            : "y-m-d",
+    altFormats        : "y-m-d|y/m/d|Y-m-d|m/d|m-d|md|ymd|Ymd|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Kraunasi...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'Šiame lauke turi būti el.pašto adresas formatu "user at domain.com"',
+    urlText      : 'Šiame lauke turi būti nuoroda (URL) formatu "http:/'+'/www.domain.com"',
+    alphaText    : 'Šiame lauke gali būti tik raidės ir ženklas "_"',
+    alphanumText : 'Šiame lauke gali būti tik raidės, skaičiai ir ženklas "_"'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Įveskite URL šiai nuorodai:',
+    buttonTips : {
+      bold : {
+        title: 'Bold (Ctrl+B)',
+        text: 'Teksto paryškinimas.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Italic (Ctrl+I)',
+        text: 'Kursyvinis tekstas.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Underline (Ctrl+U)',
+        text: 'Teksto pabraukimas.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Padidinti Å¡riftÄ…',
+        text: 'Padidinti šrifto dydį.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Sumažinti šriftą',
+        text: 'Sumažinti šrifto dydį.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Nuspalvinti teksto fonÄ…',
+        text: 'Pakeisti teksto fono spalvÄ….',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Teksto spalva',
+        text: 'Pakeisti pažymėto teksto spalvą.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'IÅ¡lyginti kairen',
+        text: 'Išlyginti tekstą į kairę.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Centruoti tekstÄ…',
+        text: 'Centruoti tektÄ… redaktoriaus lange.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Išlyginti dešinėn',
+        text: 'Išlyginti tekstą į dešinę.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Paprastas sąrašas',
+        text: 'Pradėti neorganizuotą sąrašą.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Numeruotas sąrašas',
+        text: 'Pradėti numeruotą sąrašą.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Nuoroda',
+        text: 'Padaryti pažymėta tekstą nuoroda.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'IÅ¡eities tekstas',
+        text: 'Persijungti į išeities teksto koregavimo režimą.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Rūšiuoti didėjančia tvarka",
+    sortDescText : "Rūšiuoti mažėjančia tvarka",
+    lockText     : "Užfiksuoti stulpelį",
+    unlockText   : "Atlaisvinti stulpelį",
+    columnsText  : "Stulpeliai"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(NÄ—ra)',
+    groupByText    : 'Grupuoti pagal šį lauką',
+    showGroupsText : 'Rodyti grupÄ—se'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Pavadinimas",
+    valueText  : "Reikšmė",
+    dateFormat : "Y-m-d"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Patraukite juostelÄ™.",
+    collapsibleSplitTip : "Patraukite juostelÄ™ arba Paspauskite dvigubai kad paslÄ—pti."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lv.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lv.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-lv.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,170 @@
+/**
+ * Latvian Translations
+ * By salix 17 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Notiek ielāde...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} iezīmētu rindu";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Aizver šo zīmni";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Vērtība šajā laukā nav pareiza";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Ielādē...";
+}
+
+Date.monthNames = [
+   "Janvāris",
+   "Februāris",
+   "Marts",
+   "Aprīlis",
+   "Maijs",
+   "JÅ«nijs",
+   "JÅ«lijs",
+   "Augusts",
+   "Septembris",
+   "Oktobris",
+   "Novembris",
+   "Decembris"
+];
+
+Date.dayNames = [
+   "Svētdiena",
+   "Pirmdiena",
+   "Otrdiena",
+   "Trešdiena",
+   "Ceturtdiena",
+   "Piektdiena",
+   "Sestdiena"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "Labi",
+      cancel : "Atcelt",
+      yes    : "Jā",
+      no     : "NÄ“"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Å odiena",
+      minText           : "Norādītais datums ir mazāks par minimālo datumu",
+      maxText           : "Norādītais datums ir lielāks par maksimālo datumu",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Nākamais mēnesis (Control+pa labi)',
+      prevText          : 'Iepriekšējais mēnesis (Control+pa kreisi)',
+      monthYearText     : 'Mēneša izvēle (Control+uz augšu/uz leju lai pārslēgtu gadus)',
+      todayTip          : "{0} (Tukšumzīme)",
+      format            : "d.m.Y",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Lapa",
+      afterPageText  : "no {0}",
+      firstText      : "Pirmā lapa",
+      prevText       : "iepriekšējā lapa",
+      nextText       : "Nākamā lapa",
+      lastText       : "Pēdējā lapa",
+      refreshText    : "Atsvaidzināt",
+      displayMsg     : "Rāda no {0} līdz {1} ierakstiem, kopā {2}",
+      emptyMsg       : 'Nav datu, ko parādīt'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Minimālais garums šim laukam ir {0}",
+      maxLengthText : "Maksimālais garums šim laukam ir {0}",
+      blankText     : "Šis ir obligāts lauks",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Minimālais garums šim laukam ir  {0}",
+      maxText : "Maksimālais garums šim laukam ir  {0}",
+      nanText : "{0} nav pareizs skaitlis"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Atspējots",
+      disabledDatesText : "Atspējots",
+      minText           : "Datumam šajā laukā jābūt lielākam kā {0}",
+      maxText           : "Datumam šajā laukā jābūt mazākam kā {0}",
+      invalidText       : "{0} nav pareizs datums - tam jābūt šādā formātā: {1}",
+      format            : "d.m.Y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Ielādē...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Šajā laukā jāieraksta e-pasta adrese formātā "lietotās at domēns.lv"',
+      urlText      : 'Šajā laukā jāieraksta URL formātā "http:/'+'/www.domēns.lv"',
+      alphaText    : 'Šis lauks drīkst saturēt tikai burtus un _ zīmi',
+      alphanumText : 'Šis lauks drīkst saturēt tikai burtus, ciparus un _ zīmi'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Kārtot pieaugošā secībā",
+      sortDescText : "Kārtot dilstošā secībā",
+      lockText     : "Noslēgt kolonnu",
+      unlockText   : "Atslēgt kolonnu",
+      columnsText  : "Kolonnas"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Nosaukums",
+      valueText  : "Vērtība",
+      dateFormat : "j.m.Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Velc, lai mainītu izmēru.",
+      collapsibleSplitTip : "Velc, lai mainītu izmēru. Dubultklikšķis noslēpj apgabalu."
+   });
+}
\ No newline at end of file

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-mk.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-mk.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-mk.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,170 @@
+/*
+ * Macedonia translation
+ * By PetarD petar.dimitrijevic at vorteksed.com.mk (utf8 encoding)
+ * 23 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Вчитувам...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} избрани редици";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Затвори tab";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Вредноста во ова поле е невалидна";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Вчитувам...";
+}
+
+Date.monthNames = [
+   "Јануари",
+   "Февруари",
+   "Март",
+   "Април",
+   "Мај",
+   "Јуни",
+   "Јули",
+   "Август",
+   "Септември",
+   "Октомври",
+   "Ноември",
+   "Декември"
+];
+
+Date.dayNames = [
+   "Недела",
+   "Понеделник",
+   "Вторник",
+   "Среда",
+   "Четврток",
+   "Петок",
+   "Сабота"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "Потврди",
+      cancel : "Поништи",
+      yes    : "Да",
+      no     : "Не"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Денеска",
+      minText           : "Овој датум е пред најмалиот датум",
+      maxText           : "Овој датум е пред најголемиот датум",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Следен месец (Control+Стрелка десно)',
+      prevText          : 'Претходен месец (Control+Стрелка лево)',
+      monthYearText     : 'Изберете месец (Control+Стрелка горе/Стрелка десно за менување година)',
+      todayTip          : "{0} (Spacebar)",
+      format            : "d.m.y"
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Страница",
+      afterPageText  : "од {0}",
+      firstText      : "Прва Страница",
+      prevText       : "Претходна Страница",
+      nextText       : "Следна Страница",
+      lastText       : "Последна Страница",
+      refreshText    : "Освежи",
+      displayMsg     : "Прикажувам {0} - {1} од {2}",
+      emptyMsg       : 'Нема податоци за приказ'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Минималната должина за ова поле е {0}",
+      maxLengthText : "Максималната должина за ова поле е {0}",
+      blankText     : "Податоците во ова поле се потребни",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Минималната вредност за ова поле е {0}",
+      maxText : "Максималната вредност за ова поле е {0}",
+      nanText : "{0} не е валиден број"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Неактивно",
+      disabledDatesText : "Неактивно",
+      minText           : "Датумот во ова поле мора да биде пред {0}",
+      maxText           : "Датумот во ова поле мора да биде по {0}",
+      invalidText       : "{0} не е валиден датум - мора да биде во формат {1}",
+      format            : "d.m.y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Вчитувам...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Ова поле треба да биде e-mail адреса во формат "user at domain.com"',
+      urlText      : 'Ова поле треба да биде URL во формат "http:/'+'/www.domain.com"',
+      alphaText    : 'Ова поле треба да содржи само букви и _',
+      alphanumText : 'Ова поле треба да содржи само букви, бројки и _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Сортирај Растечки",
+      sortDescText : "Сортирај Опаѓачки",
+      lockText     : "Заклучи Колона",
+      unlockText   : "Отклучи колона",
+      columnsText  : "Колони"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Име",
+      valueText  : "Вредност",
+      dateFormat : "m.d.Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Повлечете за менување на големината.",
+      collapsibleSplitTip : "Повлечете за менување на големината. Дупли клик за криење."
+   });
+}
\ No newline at end of file

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-nl.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-nl.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-nl.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,292 @@
+/*
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Dutch Translations
+ * by Ido Sebastiaan Bas van Oostveen (12 Oct 2007)
+ */
+
+/* Ext Core translations */
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Bezig met laden...</div>';
+
+/* Ext single string translations */
+if(Ext.View){
+    Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+    Ext.grid.Grid.prototype.ddText = "{0} geselecteerde rij(en)";
+}
+
+if(Ext.TabPanelItem){
+    Ext.TabPanelItem.prototype.closeText = "Sluit dit tabblad";
+}
+
+if(Ext.form.Field){
+    Ext.form.Field.prototype.invalidText = "De waarde in dit veld is onjuist";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Bezig met laden...";
+}
+
+/* Javascript month and days translations */
+Date.monthNames = [
+   "Januari",
+   "Februari",
+   "Maart",
+   "April",
+   "Mei",
+   "Juni",
+   "Juli",
+   "Augustus",
+   "September",
+   "Oktober",
+   "November",
+   "December"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Maa : 2,
+  Apr : 3,
+  Mei : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Okt : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "Zondag",
+   "Maandag",
+   "Dinsdag",
+   "Woensdag",
+   "Donderdag",
+   "Vrijdag",
+   "Zaterdag"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+    Ext.MessageBox.buttonText = {
+       ok     : "OK",
+       cancel : "Annuleren",
+       yes    : "Ja",
+       no     : "Nee"
+    };
+}
+
+if(Ext.util.Format){
+    Ext.util.Format.date = function(v, format){
+       if(!v) return "";
+       if(!(v instanceof Date)) v = new Date(Date.parse(v));
+       return v.dateFormat(format || "d-m-y");
+    };
+}
+
+if(Ext.DatePicker){
+    Ext.apply(Ext.DatePicker.prototype, {
+       todayText         : "Vandaag",
+       minText           : "Deze datum is eerder dan de minimum datum",
+       maxText           : "Deze datum is later dan de maximum datum",
+       disabledDaysText  : "",
+       disabledDatesText : "",
+       monthNames	 : Date.monthNames,
+       dayNames		 : Date.dayNames,
+       nextText          : 'Volgende Maand (Control+Rechts)',
+       prevText          : 'Vorige Maand (Control+Links)',
+       monthYearText     : 'Kies een maand (Control+Omhoog/Beneden volgend/vorige jaar)',
+       todayTip          : "{0} (Spatie)",
+       format            : "d-m-y",
+       okText		 : "&#160;OK&#160;",
+       cancelText	 : "Annuleren",
+       startDay          : 1
+    });
+}
+
+if(Ext.PagingToolbar){
+    Ext.apply(Ext.PagingToolbar.prototype, {
+       beforePageText : "Pagina",
+       afterPageText  : "van {0}",
+       firstText      : "Eerste Pagina",
+       prevText       : "Vorige Pagina",
+       nextText       : "Volgende Pagina",
+       lastText       : "Laatste Pagina",
+       refreshText    : "Ververs",
+       displayMsg     : "Getoond {0} - {1} van {2}",
+       emptyMsg       : 'Geen gegeven om weer te geven'
+    });
+}
+
+if(Ext.form.TextField){
+    Ext.apply(Ext.form.TextField.prototype, {
+       minLengthText : "De minimale lengte voor dit veld is {0}",
+       maxLengthText : "De maximale lengte voor dit veld is {0}",
+       blankText     : "Dit veld is verplicht",
+       regexText     : "",
+       emptyText     : null
+    });
+}
+
+if(Ext.form.NumberField){
+    Ext.apply(Ext.form.NumberField.prototype, {
+       minText : "De minimale waarde voor dit veld is {0}",
+       maxText : "De maximale waarde voor dit veld is {0}",
+       nanText : "{0} is geen geldig getal"
+    });
+}
+
+if(Ext.form.DateField){
+    Ext.apply(Ext.form.DateField.prototype, {
+       disabledDaysText  : "Uitgeschakeld",
+       disabledDatesText : "Uitgeschakeld",
+       minText           : "De datum in dit veld moet na {0} liggen",
+       maxText           : "De datum in dit veld moet voor {0} liggen",
+       invalidText       : "{0} is geen geldige datum - formaat voor datum is {1}",
+       format            : "d-m-y",
+       altFormats        : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+    });
+}
+
+if(Ext.form.ComboBox){
+    Ext.apply(Ext.form.ComboBox.prototype, {
+       loadingText       : "Bezig met laden...",
+       valueNotFoundText : undefined
+    });
+}
+
+if(Ext.form.VTypes){
+    Ext.apply(Ext.form.VTypes, {
+       emailText    : 'Dit veld moet een e-mail adres zijn in het formaat "gebruiker at domein.nl"',
+       urlText      : 'Dit veld moet een URL zijn in het formaat "http:/'+'/www.domein.nl"',
+       alphaText    : 'Dit veld mag alleen letters en _ bevatten',
+       alphanumText : 'Dit veld mag alleen letters, cijfers en _ bevatten'
+    });
+}
+
+if(Ext.form.HtmlEditor){
+   Ext.apply(Ext.form.HtmlEditor.prototype, {
+	createLinkText : 'Vul hier het Internet adres voor de link in:',
+	buttonTips : {
+            bold : {
+                title: 'Vet (Ctrl+B)',
+                text: 'Maak de geselecteerde tekst vet gedrukt.',
+                cls: 'x-html-editor-tip'
+            },
+            italic : {
+                title: 'Cursief (Ctrl+I)',
+                text: 'Maak de geselecteerde tekst cursief.',
+                cls: 'x-html-editor-tip'
+            },
+            underline : {
+                title: 'Onderstrepen (Ctrl+U)',
+                text: 'Onderstreep de geselecteerde tekst.',
+                cls: 'x-html-editor-tip'
+            },
+            increasefontsize : {
+                title: 'Tekst Vergroten',
+                text: 'Vergroot het lettertype.',
+                cls: 'x-html-editor-tip'
+            },
+            decreasefontsize : {
+                title: 'Tekst Verkleinen',
+                text: 'Verklein het lettertype.',
+                cls: 'x-html-editor-tip'
+            },
+            backcolor : {
+                title: 'Tekst Achtergrond Kleur',
+                text: 'Verander de achtergrond kleur van de geselecteerde tekst.',
+                cls: 'x-html-editor-tip'
+            },
+            forecolor : {
+                title: 'Lettertype Kleur',
+                text: 'Verander de kleur van de geselecteerde tekst.',
+                cls: 'x-html-editor-tip'
+            },
+            justifyleft : {
+                title: 'Tekst Links Uitlijnen',
+                text: 'Lijn de tekst links uit.',
+                cls: 'x-html-editor-tip'
+            },
+            justifycenter : {
+                title: 'Tekst Centreren',
+                text: 'Centreer de tekst in de editor.',
+                cls: 'x-html-editor-tip'
+            },
+            justifyright : {
+                title: 'Tekst Richts Uitlijnen',
+                text: 'Lijn de tekst rechts uit.',
+                cls: 'x-html-editor-tip'
+            },
+            insertunorderedlist : {
+                title: 'Punten Lijst',
+                text: 'Begin een ongenummerde lijst.',
+                cls: 'x-html-editor-tip'
+            },
+            insertorderedlist : {
+                title: 'Genummerde Lijst',
+                text: 'Begin een genummerde lijst.',
+                cls: 'x-html-editor-tip'
+            },
+            createlink : {
+                title: 'Hyperlink',
+                text: 'Maak van de geselecteerde tekst een hyperlink.',
+                cls: 'x-html-editor-tip'
+            },
+            sourceedit : {
+                title: 'Bron Aanpassen',
+                text: 'Schakel modus over naar bron aanpassen.',
+                cls: 'x-html-editor-tip'
+            }
+        }
+    });
+}
+
+if(Ext.grid.GridView){
+    Ext.apply(Ext.grid.GridView.prototype, {
+       sortAscText  : "Sorteer Oplopend",
+       sortDescText : "Sorteer Aflopend",
+       lockText     : "Kolom Vastzetten",
+       unlockText   : "Kolom Vrijgeven",
+       columnsText  : "Kolommen"
+    });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Geen)',
+    groupByText    : 'Dit veld groeperen',
+    showGroupsText : 'Zien als groepen'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+    Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+       nameText   : "Naam",
+       valueText  : "Waarde",
+       dateFormat : "Y-m-j"
+    });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+    Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+       splitTip            : "Sleep om grootte aan te passen.",
+       collapsibleSplitTip : "Sleep om grootte aan te passen. Dubbel klikken om te verbergen."
+    });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NB.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NB.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NB.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,288 @@
+/**
+ *
+ * Norwegian translation (Bokmål: no-NB)
+ * By Tore Kjørsvik 21-January-2008
+ *  
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Laster...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} markert(e) rad(er)";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Lukk denne fanen";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "Verdien i dette feltet er ugyldig";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Laster...";
+}
+
+Date.monthNames = [
+  "Januar",
+  "Februar",
+  "Mars",
+  "April",
+  "Mai",
+  "Juni",
+  "Juli",
+  "August",
+  "September",
+  "Oktober",
+  "November",
+  "Desember"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  Mai : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Okt : 9,
+  Nov : 10,
+  Des : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Søndag",
+  "Mandag",
+  "Tirsdag",
+  "Onsdag",
+  "Torsdag",
+  "Fredag",
+  "Lørdag"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "OK",
+    cancel : "Avbryt",
+    yes    : "Ja",
+    no     : "Nei"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d.m.Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "I dag",
+    minText           : "Denne datoen er før tidligste tillatte dato",
+    maxText           : "Denne datoen er etter seneste tillatte dato",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames	      : Date.monthNames,
+    dayNames		      : Date.dayNames,
+    nextText          : 'Neste måned (Control+Pil Høyre)',
+    prevText          : 'Forrige måned (Control+Pil Venstre)',
+    monthYearText     : 'Velg en måned (Control+Pil Opp/Ned for å skifte år)',
+    todayTip          : "{0} (Mellomrom)",
+    format            : "d.m.y",
+    okText            : "&#160;OK&#160;",
+    cancelText        : "Avbryt",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Side",
+    afterPageText  : "av {0}",
+    firstText      : "Første side",
+    prevText       : "Forrige side",
+    nextText       : "Neste side",
+    lastText       : "Siste side",
+    refreshText    : "Oppdater",
+    displayMsg     : "Viser {0} - {1} av {2}",
+    emptyMsg       : 'Ingen data å vise'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "Den minste lengden for dette feltet er {0}",
+    maxLengthText : "Den største lengden for dette feltet er {0}",
+    blankText     : "Dette feltet er påkrevd",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "Den minste verdien for dette feltet er {0}",
+    maxText : "Den største verdien for dette feltet er {0}",
+    nanText : "{0} er ikke et gyldig nummer"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Deaktivert",
+    disabledDatesText : "Deaktivert",
+    minText           : "Datoen i dette feltet må være etter {0}",
+    maxText           : "Datoen i dette feltet må være før {0}",
+    invalidText       : "{0} er ikke en gyldig dato - den må være på formatet {1}",
+    format            : "d.m.y",
+    altFormats        : "d.m.Y|d/m/y|d/m/Y|d-m-y|d-m-Y|d.m|d/m|d-m|dm|dmy|dmY|d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Laster...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Dette feltet skal være en epost adresse på formatet "bruker at domene.no"',
+      urlText      : 'Dette feltet skal være en link (URL) på formatet "http:/'+'/www.domene.no"',
+      alphaText    : 'Dette feltet skal kun inneholde bokstaver og _',
+      alphanumText : 'Dette feltet skal kun inneholde bokstaver, tall og _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Vennligst skriv inn URL for lenken:',
+    buttonTips : {
+      bold : {
+        title: 'Fet (Ctrl+B)',
+        text: 'Gjør den valgte teksten fet.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Kursiv (Ctrl+I)',
+        text: 'Gjør den valgte teksten kursiv.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Understrek (Ctrl+U)',
+        text: 'Understrek den valgte teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Forstørr tekst',
+        text: 'Gjør fontstørrelse større.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Forminsk tekst',
+        text: 'Gjør fontstørrelse mindre.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Tekst markeringsfarge',
+        text: 'Endre bakgrunnsfarge til den valgte teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Font farge',
+        text: 'Endre farge på den valgte teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Venstrejuster tekst',
+        text: 'Venstrejuster teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Sentrer tekst',
+        text: 'Sentrer teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Høyrejuster tekst',
+        text: 'Høyrejuster teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Punktliste',
+        text: 'Start en punktliste.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Nummerert liste',
+        text: 'Start en nummerert liste.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Lenke',
+        text: 'Gjør den valgte teksten til en lenke.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Rediger kilde',
+        text: 'Bytt til kilderedigeringsvisning.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Sorter stigende",
+    sortDescText : "Sorter synkende",
+    lockText     : "LÃ¥s kolonne",
+    unlockText   : "LÃ¥s opp kolonne",
+    columnsText  : "Kolonner"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Ingen)',
+    groupByText    : 'Grupper etter dette feltet',
+    showGroupsText : 'Vis i grupper'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Navn",
+    valueText  : "Verdi",
+    dateFormat : "d.m.Y"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Dra for å endre størrelse.",
+    collapsibleSplitTip : "Dra for å endre størrelse. Dobbelklikk for å skjule."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NN.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NN.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-no_NN.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,288 @@
+/**
+ *
+ * Norwegian translation (Nynorsk: no-NN)
+ * By Tore Kjørsvik 21-January-2008
+ *  
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Lastar...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} markert(e) rad(er)";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Lukk denne fana";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "Verdien i dette feltet er ugyldig";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Lastar...";
+}
+
+Date.monthNames = [
+  "Januar",
+  "Februar",
+  "Mars",
+  "April",
+  "Mai",
+  "Juni",
+  "Juli",
+  "August",
+  "September",
+  "Oktober",
+  "November",
+  "Desember"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  Mai : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Okt : 9,
+  Nov : 10,
+  Des : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Søndag",
+  "MÃ¥ndag",
+  "Tysdag",
+  "Onsdag",
+  "Torsdag",
+  "Fredag",
+  "Laurdag"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "OK",
+    cancel : "Avbryt",
+    yes    : "Ja",
+    no     : "Nei"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d.m.Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "I dag",
+    minText           : "Denne datoen er før tidlegaste tillatne dato",
+    maxText           : "Denne datoen er etter seinaste tillatne dato",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames	      : Date.monthNames,
+    dayNames		      : Date.dayNames,
+    nextText          : 'Neste månad (Control+Pil Høgre)',
+    prevText          : 'Førre månad (Control+Pil Venstre)',
+    monthYearText     : 'Velj ein månad (Control+Pil Opp/Ned for å skifte år)',
+    todayTip          : "{0} (Mellomrom)",
+    format            : "d.m.y",
+    okText            : "&#160;OK&#160;",
+    cancelText        : "Avbryt",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Side",
+    afterPageText  : "av {0}",
+    firstText      : "Første sida",
+    prevText       : "Førre sida",
+    nextText       : "Neste sida",
+    lastText       : "Siste sida",
+    refreshText    : "Oppdater",
+    displayMsg     : "Viser {0} - {1} av {2}",
+    emptyMsg       : 'Ingen data å vise'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "Den minste lengda for dette feltet er {0}",
+    maxLengthText : "Den største lengda for dette feltet er {0}",
+    blankText     : "Dette feltet er påkravd",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "Den minste verdien for dette feltet er {0}",
+    maxText : "Den største verdien for dette feltet er {0}",
+    nanText : "{0} er ikkje eit gyldig nummer"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Deaktivert",
+    disabledDatesText : "Deaktivert",
+    minText           : "Datoen i dette feltet må vere etter {0}",
+    maxText           : "Datoen i dette feltet må vere før {0}",
+    invalidText       : "{0} er ikkje ein gyldig dato - han må vere på formatet {1}",
+    format            : "d.m.y",
+    altFormats        : "d.m.Y|d/m/y|d/m/Y|d-m-y|d-m-Y|d.m|d/m|d-m|dm|dmy|dmY|d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Lastar...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Dette feltet skal vere ei epost adresse på formatet "bruker at domene.no"',
+      urlText      : 'Dette feltet skal vere ein link (URL) på formatet "http:/'+'/www.domene.no"',
+      alphaText    : 'Dette feltet skal berre innehalde bokstavar og _',
+      alphanumText : 'Dette feltet skal berre innehalde bokstavar, tal og _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Ver venleg og skriv inn URL for lenken:',
+    buttonTips : {
+      bold : {
+        title: 'Feit (Ctrl+B)',
+        text: 'Gjer den valde teksten feit.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Kursiv (Ctrl+I)',
+        text: 'Gjer den valde teksten kursiv.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Understrek (Ctrl+U)',
+        text: 'Understrek den valde teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Forstørr tekst',
+        text: 'Gjer fontstorleik større.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Forminsk tekst',
+        text: 'Gjer fontstorleik mindre.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Tekst markeringsfarge',
+        text: 'Endre bakgrunnsfarge til den valde teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Font farge',
+        text: 'Endre farge på den valde teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Venstrejuster tekst',
+        text: 'Venstrejuster teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Sentrer tekst',
+        text: 'Sentrer teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Høgrejuster tekst',
+        text: 'Høgrejuster teksten.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Punktliste',
+        text: 'Start ei punktliste.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Nummerert liste',
+        text: 'Start ei nummerert liste.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Lenke',
+        text: 'Gjer den valde teksten til ei lenke.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Rediger kjelde',
+        text: 'Bytt til kjelderedigeringsvising.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Sorter stigande",
+    sortDescText : "Sorter fallande",
+    lockText     : "LÃ¥s kolonne",
+    unlockText   : "LÃ¥s opp kolonne",
+    columnsText  : "Kolonner"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Ingen)',
+    groupByText    : 'Grupper etter dette feltet',
+    showGroupsText : 'Vis i grupper'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Namn",
+    valueText  : "Verdi",
+    dateFormat : "d.m.Y"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Dra for å endre storleik.",
+    collapsibleSplitTip : "Dra for å endre storleik. Dobbelklikk for å skjule."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pl.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pl.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pl.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,298 @@
+/**
+ * Polish Translations
+ * By vbert 17-April-2007
+ * Updated by mmar 16-November-2007
+ * Encoding: utf-8
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Wczytywanie danych...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} wybrano wiersze(y)";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Zamknij zakładkę";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Wartość tego pola jest niewłaściwa";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Wczytywanie danych...";
+}
+
+Date.monthNames = [
+    "Styczeń",
+    "Luty",
+    "Marzec",
+    "Kwiecień",
+    "Maj",
+    "Czerwiec",
+    "Lipiec",
+    "Sierpień",
+    "Wrzesień",
+    "Październik",
+    "Listopad",
+    "Grudzień"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Sty : 0,
+  Lut : 1,
+  Mar : 2,
+  Kwi : 3,
+  Maj : 4,
+  Cze : 5,
+  Lip : 6,
+  Sie : 7,
+  Wrz : 8,
+  Paź : 9,
+  Lis : 10,
+  Gru : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+    "Niedziela",
+    "Poniedziałek",
+    "Wtorek",
+    "Åšroda",
+    "Czwartek",
+    "PiÄ…tek",
+    "Sobota"
+];
+
+Date.getShortDayName = function(day) {
+	switch(day) {
+		case 0: return 'ndz';
+		case 1: return 'pon';
+		case 2: return 'wt';
+		case 3: return 'śr';
+		case 4: return 'czw';
+		case 5: return 'pt';				
+		case 6: return 'sob';
+                default: return '';
+	}
+};
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Anuluj",
+      yes    : "Tak",
+      no     : "Nie"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "Y-m-d");
+   };
+}
+
+if(Ext.DatePicker){
+	Ext.apply(Ext.DatePicker.prototype, {
+		startDay			: 1,
+		todayText			: "Dzisiaj",
+		minText				: "Data jest wcześniejsza od daty minimalnej",
+		maxText				: "Data jest późniejsza od daty maksymalnej",
+		disabledDaysText	: "",
+		disabledDatesText	: "",
+		monthNames			: Date.monthNames,
+		dayNames			: Date.dayNames,
+		nextText			: "Następny miesiąc (Control+StrzałkaWPrawo)",
+		prevText			: "Poprzedni miesiąc (Control+StrzałkaWLewo)",
+		monthYearText		: "Wybierz miesiąc (Control+Up/Down aby zmienić rok)",
+		todayTip			: "{0} (Spacja)",
+		format				: "Y-m-d",
+		okText            	: "&#160;OK&#160;",
+    	cancelText        	: "Anuluj",
+    	startDay          	: 1
+	});
+}
+
+if(Ext.PagingToolbar){
+	Ext.apply(Ext.PagingToolbar.prototype, {
+		beforePageText	: "Strona",
+		afterPageText	: "z {0}",
+		firstText		: "Pierwsza strona",
+	    prevText		: "Poprzednia strona",
+		nextText		: "Następna strona",
+	    lastText		: "Ostatnia strona",
+		refreshText		: "Odśwież",
+	    displayMsg		: "Wyświetlono {0} - {1} z {2}",
+		emptyMsg		: "Brak danych do wyświetlenia"
+	});
+}
+
+if(Ext.form.TextField){
+	Ext.apply(Ext.form.TextField.prototype, {
+	    minLengthText	: "Minimalna ilość znaków dla tego pola to {0}",
+		maxLengthText	: "Maksymalna ilość znaków dla tego pola to {0}",
+	    blankText		: "To pole jest wymagane",
+		regexText		: "",
+	    emptyText		: null
+	});
+}
+
+if(Ext.form.NumberField){
+	Ext.apply(Ext.form.NumberField.prototype, {
+	    minText	: "Minimalna wartość dla tego pola to {0}",
+	    maxText	: "Maksymalna wartość dla tego pola to {0}",
+		nanText	: "{0} to nie jest właściwa wartość"
+	});
+}
+
+if(Ext.form.DateField){
+	Ext.apply(Ext.form.DateField.prototype, {
+	    disabledDaysText	: "Wyłączony",
+	    disabledDatesText	: "Wyłączony",
+		minText				: "Data w tym polu musi być późniejsza od {0}",
+	    maxText				: "Data w tym polu musi być wcześniejsza od {0}",
+		invalidText			: "{0} to nie jest prawidłowa data - prawidłowy format daty {1}",
+	    format				: "Y-m-d",
+    	altFormats    	    : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+	});
+}
+
+if(Ext.form.ComboBox){
+	Ext.apply(Ext.form.ComboBox.prototype, {
+		loadingText       : "WczytujÄ™...",
+		valueNotFoundText : undefined
+	});
+}
+
+if(Ext.form.VTypes){
+	Ext.apply(Ext.form.VTypes, {
+	    emailText		: 'To pole wymaga podania adresu e-mail w formacie: "nazwa at domena.pl"',
+	    urlText			: 'To pole wymaga podania adresu strony www w formacie: "http:/'+'/www.domena.pl"',
+		alphaText		: 'To pole wymaga podania tylko liter i _',
+		alphanumText	: 'To pole wymaga podania tylko liter, cyfr i _'
+	});
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Wprowadź adres URL strony:',
+    buttonTips : {
+      bold : {
+        title: 'Pogrubienie (Ctrl+B)',
+        text: 'Ustaw styl zaznaczonego tekstu na pogrubiony.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Kursywa (Ctrl+I)',
+        text: 'Ustaw styl zaznaczonego tekstu na kursywÄ™.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Podkreślenie (Ctrl+U)',
+        text: 'Podkreśl zaznaczony tekst.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Zwiększ czcionkę',
+        text: 'Zwiększ rozmiar czcionki.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Zmniejsz czcionkÄ™',
+        text: 'Zmniejsz rozmiar czcionki.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Wyróżnienie',
+        text: 'Zmień kolor wyróżnienia zaznaczonego tekstu.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Kolor czcionki',
+        text: 'Zmień kolor zaznaczonego tekstu.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Do lewej',
+        text: 'Wyrównaj tekst do lewej.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Wyśrodkuj',
+        text: 'Wyrównaj tekst do środka.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Do prawej',
+        text: 'Wyrównaj tekst do prawej.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Lista wypunktowana',
+        text: 'Rozpocznij listÄ™ wypunktowanÄ….',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Lista numerowana',
+        text: 'Rozpocznij listÄ™ numerowanÄ….',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hiperłącze',
+        text: 'Przekształć zaznaczony tekst w hiperłącze.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Edycja źródła',
+        text: 'Przełącz w tryb edycji źródła.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+	Ext.apply(Ext.grid.GridView.prototype, {
+	    sortAscText		: "Sortuj rosnÄ…co",
+	    sortDescText	: "Sortuj malejÄ…co",
+		lockText		: "Zablokuj kolumnÄ™",
+	    unlockText		: "Odblokuj kolumnÄ™",
+		columnsText		: "Kolumny"
+	});
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(None)',
+    groupByText    : 'Grupuj po tym polu',
+    showGroupsText : 'Pokaż w grupach'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+	Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+	    nameText	: "Nazwa",
+	    valueText	: "Wartość",
+		dateFormat	: "Y-m-d"
+	});
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+	Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+	    splitTip			: "Przeciągnij aby zmienić rozmiar.",
+		collapsibleSplitTip	: "Przeciągnij aby zmienić rozmiar. Kliknij dwukrotnie aby ukryć."
+	});
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,254 @@
+/*
+ * Portuguese/Brazil Translation by Weber Souza
+ * 08 April 2007
+ * Updated by Allan Brazute Alves (EthraZa)
+ * 06 September 2007
+ * Adapted to European Portuguese by Helder Batista (hbatista)
+ * 31 January 2008
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Carregando...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} linha(s) seleccionada(s)";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Fechar";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "O valor para este campo &eacute; inv&aacute;lido";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Carregando...";
+}
+
+Date.monthNames = [
+   "Janeiro",
+   "Fevereiro",
+   "Mar&ccedil;o",
+   "Abril",
+   "Maio",
+   "Junho",
+   "Julho",
+   "Agosto",
+   "Setembro",
+   "Outubro",
+   "Novembro",
+   "Dezembro"
+];
+
+Date.dayNames = [
+   "Domingo",
+   "Segunda",
+   "Ter&ccedil;a",
+   "Quarta",
+   "Quinta",
+   "Sexta",
+   "S&aacute;bado"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Cancelar",
+      yes    : "Sim",
+      no     : "N&atilde;o"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Hoje",
+      minText           : "Esta data &eacute; anterior &agrave; menor data",
+      maxText           : "Esta data &eacute; posterior &agrave; maior data",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames        : Date.monthNames,
+      dayNames          : Date.dayNames,
+      nextText          : 'Pr&oacute;ximo M&ecirc;s (Control+Direita)',
+      prevText          : 'M&ecirc;s Anterior (Control+Esquerda)',
+      monthYearText     : 'Escolha um M&ecirc;s (Control+Cima/Baixo para mover entre os anos)',
+      todayTip          : "{0} (Espa&ccedil;o)",
+      format            : "d/m/Y",
+      okText            : "&#160;OK&#160;",
+      cancelText        : "Cancelar",
+      startDay          : 0
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "P&aacute;gina",
+      afterPageText  : "de {0}",
+      firstText      : "Primeira P&aacute;gina",
+      prevText       : "P&aacute;gina Anterior",
+      nextText       : "Pr&oacute;xima P&aacute;gina",
+      lastText       : "&Uacute;ltima P&aacute;gina",
+      refreshText    : "Atualizar",
+      displayMsg     : "<b>{0} &agrave; {1} de {2} registo(s)</b>",
+      emptyMsg       : 'Sem registos para exibir'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "O tamanho m&iacute;nimo para este campo &eacute; {0}",
+      maxLengthText : "O tamanho m&aacute;ximo para este campo &eacute; {0}",
+      blankText     : "Este campo &eacute; obrigat&oacute;rio.",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "O valor m&iacute;nimo para este campo &eacute; {0}",
+      maxText : "O valor m&aacute;ximo para este campo &eacute; {0}",
+      nanText : "{0} n&atilde;o &eacute; um n&uacute;mero v&aacute;lido"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Desabilitado",
+      disabledDatesText : "Desabilitado",
+      minText           : "A data deste campo deve ser posterior a {0}",
+      maxText           : "A data deste campo deve ser anterior a {0}",
+      invalidText       : "{0} n&atilde;o &eacute; uma data v&aacute;lida - deve ser usado o formato {1}",
+      format            : "d/m/Y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Carregando...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Este campo deve ser um endere&ccedil;o de e-mail v&aacute;lido, no formato "utilizador at dominio.com"',
+      urlText      : 'Este campo deve ser um URL no formato "http:/'+'/www.dominio.com"',
+      alphaText    : 'Este campo deve conter apenas letras e _',
+      alphanumText : 'Este campo deve conter apenas letras, n&uacute;meros e _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+   Ext.apply(Ext.form.HtmlEditor.prototype, {
+	 createLinkText : 'Por favor, entre com o URL do link:',
+	 buttonTips : {
+            bold : {
+               title: 'Negrito (Ctrl+B)',
+               text: 'Deixa o texto seleccionado em negrito.',
+               cls: 'x-html-editor-tip'
+            },
+            italic : {
+               title: 'Italico (Ctrl+I)',
+               text: 'Deixa o texto seleccionado em italico.',
+               cls: 'x-html-editor-tip'
+            },
+            underline : {
+               title: 'Sublinhado (Ctrl+U)',
+               text: 'Sublinha o texto seleccionado.',
+               cls: 'x-html-editor-tip'
+           },
+           increasefontsize : {
+               title: 'Aumentar Texto',
+               text: 'Aumenta o tamanho da fonte.',
+               cls: 'x-html-editor-tip'
+           },
+           decreasefontsize : {
+               title: 'Diminuir Texto',
+               text: 'Diminui o tamanho da fonte.',
+               cls: 'x-html-editor-tip'
+           },
+           backcolor : {
+               title: 'Cor de Fundo',
+               text: 'Muda a cor do fundo do texto seleccionado.',
+               cls: 'x-html-editor-tip'
+           },
+           forecolor : {
+               title: 'Cor da Fonte',
+               text: 'Muda a cor do texto seleccionado.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyleft : {
+               title: 'Alinhar &agrave; Esquerda',
+               text: 'Alinha o texto &agrave; esquerda.',
+               cls: 'x-html-editor-tip'
+           },
+           justifycenter : {
+               title: 'Centrar Texto',
+               text: 'Centra o texto no editor.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyright : {
+               title: 'Alinhar &agrave; Direita',
+               text: 'Alinha o texto &agrave; direita.',
+               cls: 'x-html-editor-tip'
+           },
+           insertunorderedlist : {
+               title: 'Lista com Marcadores',
+               text: 'Inicia uma lista com marcadores.',
+               cls: 'x-html-editor-tip'
+           },
+           insertorderedlist : {
+               title: 'Lista Numerada',
+               text: 'Inicia uma lista numerada.',
+               cls: 'x-html-editor-tip'
+           },
+           createlink : {
+               title: 'Hyperliga&ccedil;&atilde;o',
+               text: 'Transforma o texto selecionado num hyperlink.',
+               cls: 'x-html-editor-tip'
+           },
+           sourceedit : {
+               title: 'Editar Fonte',
+               text: 'Troca para o modo de edi&ccedil;&atilde;o de c&oacute;digo fonte.',
+               cls: 'x-html-editor-tip'
+           }
+        }
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Ordem Ascendente",
+      sortDescText : "Ordem Descendente",
+      lockText     : "Bloquear Coluna",
+      unlockText   : "Desbloquear Coluna",
+      columnsText  : "Colunas"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Nome",
+      valueText  : "Valor",
+      dateFormat : "d/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Arraste para redimensionar.",
+      collapsibleSplitTip : "Arraste para redimensionar. Duplo clique para esconder."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt_BR.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt_BR.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-pt_BR.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,275 @@
+/*
+ * Portuguese/Brazil Translation by Weber Souza
+ * 08 April 2007
+ * Updated by Allan Brazute Alves (EthraZa)
+ * 06 September 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Carregando...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} linha(s) selecionada(s)";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Fechar";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "O valor para este campo é inválido";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Carregando...";
+}
+
+Date.monthNames = [
+   "Janeiro",
+   "Fevereiro",
+   "Março",
+   "Abril",
+   "Maio",
+   "Junho",
+   "Julho",
+   "Agosto",
+   "Setembro",
+   "Outubro",
+   "Novembro",
+   "Dezembro"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Fev : 1,
+  Mar : 2,
+  Abr : 3,
+  Mai : 4,
+  Jun : 5,
+  Jul : 6,
+  Ago : 7,
+  Set : 8,
+  Out : 9,
+  Nov : 10,
+  Dez : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+   "Domingo",
+   "Segunda",
+   "Terça",
+   "Quarta",
+   "Quinta",
+   "Sexta",
+   "Sábado"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Cancelar",
+      yes    : "Sim",
+      no     : "Não"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Hoje",
+      minText           : "Esta data é anterior a menor data",
+      maxText           : "Esta data é posterior a maior data",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames        : Date.monthNames,
+      dayNames          : Date.dayNames,
+      nextText          : 'Próximo Mês (Control+Direita)',
+      prevText          : 'Mês Anterior (Control+Esquerda)',
+      monthYearText     : 'Escolha um Mês (Control+Cima/Baixo para mover entre os anos)',
+      todayTip          : "{0} (Espaço)",
+      format            : "d/m/Y",
+      okText            : "&#160;OK&#160;",
+      cancelText        : "Cancelar",
+      startDay          : 0
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Página",
+      afterPageText  : "de {0}",
+      firstText      : "Primeira Página",
+      prevText       : "Página Anterior",
+      nextText       : "Próxima Página",
+      lastText       : "Última Página",
+      refreshText    : "Atualizar",
+      displayMsg     : "<b>{0} à {1} de {2} registro(s)</b>",
+      emptyMsg       : 'Sem registros para exibir'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "O tamanho mínimo para este campo é {0}",
+      maxLengthText : "O tamanho máximo para este campo é {0}",
+      blankText     : "Este campo é obrigatório.",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "O valor mínimo para este campo é {0}",
+      maxText : "O valor máximo para este campo é {0}",
+      nanText : "{0} não é um número válido"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Desabilitado",
+      disabledDatesText : "Desabilitado",
+      minText           : "A data deste campo deve ser posterior a {0}",
+      maxText           : "A data deste campo deve ser anterior a {0}",
+      invalidText       : "{0} não é uma data válida - deve ser informado no formato {1}",
+      format            : "d/m/Y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Carregando...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Este campo deve ser um endereço de e-mail válido, no formado "usuario at dominio.com.br"',
+      urlText      : 'Este campo deve ser uma URL no formato "http:/'+'/www.dominio.com.br"',
+      alphaText    : 'Este campo deve conter apenas letras e _',
+      alphanumText : 'Este campo deve conter apenas letras, números e _'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+   Ext.apply(Ext.form.HtmlEditor.prototype, {
+	 createLinkText : 'Porfavor, entre com a URL do link:',
+	 buttonTips : {
+            bold : {
+               title: 'Negrito (Ctrl+B)',
+               text: 'Deixa o texto selecionado em negrito.',
+               cls: 'x-html-editor-tip'
+            },
+            italic : {
+               title: 'Italico (Ctrl+I)',
+               text: 'Deixa o texto selecionado em italico.',
+               cls: 'x-html-editor-tip'
+            },
+            underline : {
+               title: 'Sublinhado (Ctrl+U)',
+               text: 'Sublinha o texto selecionado.',
+               cls: 'x-html-editor-tip'
+           },
+           increasefontsize : {
+               title: 'Aumentar Texto',
+               text: 'Aumenta o tamanho da fonte.',
+               cls: 'x-html-editor-tip'
+           },
+           decreasefontsize : {
+               title: 'Diminuir Texto',
+               text: 'Diminui o tamanho da fonte.',
+               cls: 'x-html-editor-tip'
+           },
+           backcolor : {
+               title: 'Cor de Fundo',
+               text: 'Muda a cor do fundo do texto selecionado.',
+               cls: 'x-html-editor-tip'
+           },
+           forecolor : {
+               title: 'Cor da Fonte',
+               text: 'Muda a cor do texto selecionado.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyleft : {
+               title: 'Alinhar à Esquerda',
+               text: 'Alinha o texto à esquerda.',
+               cls: 'x-html-editor-tip'
+           },
+           justifycenter : {
+               title: 'Centralizar Texto',
+               text: 'Centraliza o texto no editor.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyright : {
+               title: 'Alinhar à Direita',
+               text: 'Alinha o texto à direita.',
+               cls: 'x-html-editor-tip'
+           },
+           insertunorderedlist : {
+               title: 'Lista com Marcadores',
+               text: 'Inicia uma lista com marcadores.',
+               cls: 'x-html-editor-tip'
+           },
+           insertorderedlist : {
+               title: 'Lista Numerada',
+               text: 'Inicia uma lista numerada.',
+               cls: 'x-html-editor-tip'
+           },
+           createlink : {
+               title: 'Hyperligação',
+               text: 'Transforma o texto selecionado em um hyperlink.',
+               cls: 'x-html-editor-tip'
+           },
+           sourceedit : {
+               title: 'Editar Fonte',
+               text: 'Troca para o modo de edição de código fonte.',
+               cls: 'x-html-editor-tip'
+           }
+        }
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Ordem Ascendente",
+      sortDescText : "Ordem Descendente",
+      lockText     : "Bloquear Coluna",
+      unlockText   : "Desbloquear Coluna",
+      columnsText  : "Colunas"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Nome",
+      valueText  : "Valor",
+      dateFormat : "d/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Arraste para redimencionar.",
+      collapsibleSplitTip : "Arraste para redimencionar. Duplo clique para esconder."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ro.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ro.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ro.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,169 @@
+/**
+ * Translation by Lucian Lature 04-24-2007
+ * Romanian Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Încărcare...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} rând(uri) selectate";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "ÃŽnchide acest tab";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Valoarea acestui câmp este invalidă";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Încărcare...";
+}
+
+Date.monthNames = [
+   "Ianuarie",
+   "Februarie",
+   "Martie",
+   "Aprilie",
+   "Mai",
+   "Iunie",
+   "Iulie",
+   "August",
+   "Septembrie",
+   "Octombrie",
+   "Noiembrie",
+   "Decembrie"
+];
+
+Date.dayNames = [
+   "Duminică",
+   "Luni",
+   "Marţi",
+   "Miercuri",
+   "Joi",
+   "Vineri",
+   "Sâmbătă"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Renunţă",
+      yes    : "Da",
+      no     : "Nu"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d-m-Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Astăzi",
+      minText           : "Această zi este înaintea datei de început",
+      maxText           : "Această zi este după ultimul termen",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Următoarea lună (Control+Right)',
+      prevText          : 'Luna anterioară (Control+Left)',
+      monthYearText     : 'Alege o lună (Control+Up/Down pentru a parcurge anii)',
+      todayTip          : "{0} (Spacebar)",
+      format            : "d-m-y"
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Pagina",
+      afterPageText  : "din {0}",
+      firstText      : "Prima pagină",
+      prevText       : "Pagina precedentă",
+      nextText       : "Următoarea pagină",
+      lastText       : "Ultima pagină",
+      refreshText    : "Reîmprospătare",
+      displayMsg     : "Afişează {0} - {1} din {2}",
+      emptyMsg       : 'Nu sunt date de afiÅŸat'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Lungimea minimă pentru acest câmp este de {0}",
+      maxLengthText : "Lungimea maximă pentru acest câmp este {0}",
+      blankText     : "Acest câmp este obligatoriu",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Valoarea minimă permisă a acestui câmp este {0}",
+      maxText : "Valaorea maximă permisă a acestui câmp este {0}",
+      nanText : "{0} nu este un număr valid"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Inactiv",
+      disabledDatesText : "Inactiv",
+      minText           : "Data acestui câmp trebuie să fie după {0}",
+      maxText           : "Data acestui câmp trebuie sa fie înainte de {0}",
+      invalidText       : "{0} nu este o dată validă - trebuie să fie în formatul {1}",
+      format            : "d-m-y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Încărcare...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Acest câmp trebuie să conţină o adresă de e-mail în formatul "user at domain.com"',
+      urlText      : 'Acest câmp trebuie să conţină o adresă URL în formatul "http:/'+'/www.domain.com"',
+      alphaText    : 'Acest câmp trebuie să conţină doar litere şi _',
+      alphanumText : 'Acest câmp trebuie să conţină doar litere, cifre şi _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Sortare ascendentă",
+      sortDescText : "Sortare descendentă",
+      lockText     : "Blochează coloana",
+      unlockText   : "Deblochează coloana",
+      columnsText  : "Coloane"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Nume",
+      valueText  : "Valoare",
+      dateFormat : "m/j/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Trage pentru redimensionare.",
+      collapsibleSplitTip : "Trage pentru redimensionare. Dublu-click pentru ascundere."
+   });
+}
\ No newline at end of file

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ru.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ru.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ru.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,294 @@
+/*
+ * Russian translation
+ * By ZooKeeper (utf-8 encoding)
+ * 6 November 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Идет загрузка...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} выбранных строк";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Закрыть эту вкладку";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "Значение в этом поле неверное";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Загрузка...";
+}
+
+Date.monthNames = [
+  "Январь",
+  "Февраль",
+  "Март",
+  "Апрель",
+  "Май",
+  "Июнь",
+  "Июль",
+  "Август",
+  "Сентябрь",
+  "Октябрь",
+  "Ноябрь",
+  "Декабрь"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Воскресенье",
+  "Понедельник",
+  "Вторник",
+  "Среда",
+  "Четверг",
+  "Пятница",
+  "Суббота"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "OK",
+    cancel : "Отмена",
+    yes    : "Да",
+    no     : "Нет"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d.m.Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText          : "Сегодня",
+    minText            : "Эта дата раньше минимальной даты",
+    maxText            : "Эта дата позже максимальной даты",
+    disabledDaysText   : "",
+    disabledDatesText  : "",
+    monthNames         : Date.monthNames,
+    dayNames           : Date.dayNames,
+    nextText           : 'Следующий месяц (Control+Вправо)',
+    prevText           : 'Предыдущий месяц (Control+Влево)',
+    monthYearText      : 'Выбор месяца (Control+Вверх/Вниз для выбора года)',
+    todayTip           : "{0} (Пробел)",
+    format             : "d.m.y",
+    okText             : "&#160;OK&#160;",
+    cancelText         : "Отмена",
+    startDay           : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Страница",
+    afterPageText  : "из {0}",
+    firstText      : "Первая страница",
+    prevText       : "Предыдущая страница",
+    nextText       : "Следующая страница",
+    lastText       : "Последняя страница",
+    refreshText    : "Обновить",
+    displayMsg     : "Отображаются записи с {0} по {1}, всего {2}",
+    emptyMsg       : 'Нет данных для отображения'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "Минимальная длина этого поля {0}",
+    maxLengthText : "Максимальная длина этого поля {0}",
+    blankText     : "Это поле обязательно для заполнения",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "Значение этого поля не может быть меньше {0}",
+    maxText : "Значение этого поля не может быть больше {0}",
+    nanText : "{0} не является числом"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Не доступно",
+    disabledDatesText : "Не доступно",
+    minText           : "Дата в этом поле должна быть позде {0}",
+    maxText           : "Дата в этом поле должна быть раньше {0}",
+    invalidText       : "{0} не является правильной датой - дата должна быть указана в формате {1}",
+    format            : "d.m.y",
+    altFormats        : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Загрузка...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText     : 'Это поле должно содержать адрес электронной почты в формате "user at domain.com"',
+    urlText       : 'Это поле должно содержать URL в формате "http:/'+'/www.domain.com"',
+    alphaText     : 'Это поле должно содержать только латинские буквы и символ подчеркивания "_"',
+    alphanumText  : 'Это поле должно содержать только латинские буквы, цифры и символ подчеркивания "_"'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Пожалуйста введите адрес:',
+    buttonTips : {
+      bold : {
+        title: 'Полужирный (Ctrl+B)',
+        text: 'Применение полужирного начертания к выделенному тексту.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Курсив (Ctrl+I)',
+        text: 'Применение курсивного начертания к выделенному тексту.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Подчёркнутый (Ctrl+U)',
+        text: 'Подчёркивание выделенного текста.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Увеличить размер',
+        text: 'Увеличение размера шрифта.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Уменьшить размер',
+        text: 'Уменьшение размера шрифта.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Заливка',
+        text: 'Изменение цвета фона для выделенного текста или абзаца.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Цвет текста',
+        text: 'Измение цвета текста.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Выровнять текст по левому краю',
+        text: 'Выровнивание текста по левому краю.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'По центру',
+        text: 'Выровнивание текста по центру.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Выровнять текст по правому краю',
+        text: 'Выровнивание текста по правому краю.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Маркеры',
+        text: 'Начать маркированный список.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Нумерация',
+        text: 'Начать нумернованный список.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Вставить гиперссылку',
+        text: 'Создание ссылки из выделенного текста.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Исходный код',
+        text: 'Переключиться на исходный код.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Сортировать по возрастанию",
+    sortDescText : "Сортировать по убыванию",
+    lockText     : "Закрепить столбец",
+    unlockText   : "Снять закрепление столбца",
+    columnsText  : "Столбцы"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Пусто)',
+    groupByText    : 'Группировать по этому полю',
+    showGroupsText : 'Отображать по группам'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Название",
+    valueText  : "Значение",
+    dateFormat : "d.m.Y"
+  });
+}
+
+if(Ext.SplitLayoutRegion){
+  Ext.apply(Ext.SplitLayoutRegion.prototype, {
+    splitTip            : "Тяните для изменения размера.",
+    collapsibleSplitTip : "Тяните для изменения размера. Двойной щелчок спрячет панель."
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Тяните для изменения размера.",
+    collapsibleSplitTip : "Тяните для изменения размера. Двойной щелчок спрячет панель."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sk.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sk.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sk.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,176 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ */
+ 
+ /*  Slovak Translation by Michal Thomka
+  *  14 April 2007
+  */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Nahrávam...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} oznaèených riadkov";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Zavrie túto záložku";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Hodnota v tomto poli je nesprávna";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Nahrávam...";
+}
+
+Date.monthNames = [
+   "Január",
+   "Február",
+   "Marec",
+   "Apríl",
+   "Máj",
+   "Jún",
+   "Júl",
+   "August",
+   "September",
+   "Október",
+   "November",
+   "December"
+];
+
+Date.dayNames = [
+   "NedeŸa",
+   "Pondelok",
+   "Utorok",
+   "Streda",
+   "Štvrtok",
+   "Piatok",
+   "Sobota"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Zruši",
+      yes    : "Áno",
+      no     : "Nie"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "m/d/R");
+   };
+}
+
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Dnes",
+      minText           : "Tento dátum je menší ako minimálny možný dátum",
+      maxText           : "Tento dátum je väèší ako maximálny možný dátum",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames        : Date.monthNames,
+      dayNames          : Date.dayNames,
+      nextText          : 'Ïalší Mesiac (Control+Doprava)',
+      prevText          : 'Predch. Mesiac (Control+DoŸava)',
+      monthYearText     : 'Vyberte Mesiac (Control+Hore/Dole pre posun rokov)',
+      todayTip          : "{0} (Medzerník)",
+      format            : "m/d/r"
+   });
+}
+
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Strana",
+      afterPageText  : "z {0}",
+      firstText      : "Prvá Strana",
+      prevText       : "Predch. Strana",
+      nextText       : "Ïalšia Strana",
+      lastText       : "Posledná strana",
+      refreshText    : "Obnovi",
+      displayMsg     : "Zobrazujem {0} - {1} z {2}",
+      emptyMsg       : 'Žiadne dáta'
+   });
+}
+
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Minimálna dåžka pre toto pole je {0}",
+      maxLengthText : "Maximálna dåžka pre toto pole je {0}",
+      blankText     : "Toto pole je povinné",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Minimálna hodnota pre toto pole je {0}",
+      maxText : "Maximálna hodnota pre toto pole je {0}",
+      nanText : "{0} je nesprávne èíslo"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Zablokované",
+      disabledDatesText : "Zablokované",
+      minText           : "Dátum v tomto poli musí by až po {0}",
+      maxText           : "Dátum v tomto poli musí by pred {0}",
+      invalidText       : "{0} nie je správny dátum - musí by vo formáte {1}",
+      format            : "m/d/r"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Nahrávam...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Toto pole musí by e-mailová adresa vo formáte "user at domain.com"',
+      urlText      : 'Toto pole musí by URL vo formáte "http:/'+'/www.domain.com"',
+      alphaText    : 'Toto poŸe može obsahova iba písmená a znak _',
+      alphanumText : 'Toto poŸe može obsahova iba písmená,èísla a znak _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Zoradi vzostupne",
+      sortDescText : "Zoradi zostupne",
+      lockText     : "Zamknú ståpec",
+      unlockText   : "Odomknú stŸpec",
+      columnsText  : "Ståpce"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Názov",
+      valueText  : "Hodnota",
+      dateFormat : "m/j/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Potiahnite pre zmenu rozmeru",
+      collapsibleSplitTip : "Potiahnite pre zmenu rozmeru. Dvojklikom schováte."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sl.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sl.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sl.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,170 @@
+/**
+ * Slovenian translation by Matjaž (UTF-8 encoding)
+ * 25 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Nalagam...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} izbranih vrstic";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Zapri zavihek";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Neveljavna vrednost";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Nalagam...";
+}
+
+Date.monthNames = [
+   "Januar",
+   "Februar",
+   "Marec",
+   "April",
+   "Maj",
+   "Junij",
+   "Julij",
+   "Avgust",
+   "September",
+   "Oktober",
+   "November",
+   "December"
+];
+
+Date.dayNames = [
+   "Nedelja",
+   "Ponedeljek",
+   "Torek",
+   "Sreda",
+   "ÄŒetrtek",
+   "Petek",
+   "Sobota"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "V redu",
+      cancel : "Prekliči",
+      yes    : "Da",
+      no     : "Ne"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Danes",
+      minText           : "Navedeni datum je pred spodnjim datumom",
+      maxText           : "Navedeni datum je za zgornjim datumom",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Naslednji mesec (Control+Desno)',
+      prevText          : 'Prejšnji mesec (Control+Levo)',
+      monthYearText     : 'Izberite mesec (Control+Gor/Dol za premik let)',
+      todayTip          : "{0} (Preslednica)",
+      format            : "d.m.y",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Stran",
+      afterPageText  : "od {0}",
+      firstText      : "Prva stran",
+      prevText       : "Prejšnja stran",
+      nextText       : "Naslednja stran",
+      lastText       : "Zadnja stran",
+      refreshText    : "Osveži",
+      displayMsg     : "Prikazujem {0} - {1} od {2}",
+      emptyMsg       : 'Ni podatkov za prikaz'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Minimalna dolžina tega polja je {0}",
+      maxLengthText : "Maksimalna dolžina tega polja je {0}",
+      blankText     : "To polje je obvezno",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Minimalna vrednost tega polja je {0}",
+      maxText : "Maksimalna vrednost tega polja je {0}",
+      nanText : "{0} ni veljavna Å¡tevilka"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Onemogočen",
+      disabledDatesText : "Onemogočen",
+      minText           : "Datum mora biti po {0}",
+      maxText           : "Datum mora biti pred {0}",
+      invalidText       : "{0} ni veljaven datum - mora biti v tem formatu {1}",
+      format            : "d.m.y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Nalagam...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'To polje je e-mail naslov formata "ime at domena.si"',
+      urlText      : 'To polje je URL naslov formata "http:/'+'/www.domena.si"',
+      alphaText    : 'To polje lahko vsebuje samo črke in _',
+      alphanumText : 'To polje lahko vsebuje samo črke, številke in _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Sortiraj naraščajoče",
+      sortDescText : "Sortiraj padajoče",
+      lockText     : "Zakleni stolpec",
+      unlockText   : "Odkleni stolpec",
+      columnsText  : "Stolpci"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Ime",
+      valueText  : "Vrednost",
+      dateFormat : "j.m.Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Potegni za razširitev.",
+      collapsibleSplitTip : "Potegni za razširitev. Dvojni klik, če želite skriti."
+   });
+}
\ No newline at end of file

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,173 @@
+/*
+ * Serbian Latin Translation
+ * by Atila Hajnal (latin, utf8 encoding)
+ * sr
+ * 14 Sep 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Učitavam...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "Ne postoji ni jedan slog";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} izabranih redova";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Zatvori оvu »karticu«";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Unešena vrednost nije pravilna";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Učitavam...";
+}
+
+Date.monthNames = [
+   "Januar",
+   "Februar",
+   "Mart",
+   "April",
+   "Мај",
+   "Jun",
+   "Јul",
+   "Avgust",
+   "Septembar",
+   "Oktobar",
+   "Novembar",
+   "Decembar"
+];
+
+Date.dayNames = [
+   "Nedelja",
+   "Ponedeljak",
+   "Utorak",
+   "Sreda",
+   "ÄŒetvrtak",
+   "Petak",
+   "Subota"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "U redu",
+      cancel : "Odustani",
+      yes    : "Da",
+      no     : "Ne"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Danas",
+      minText           : "Datum је ispred najmanjeg dozvoljenog datuma",
+      maxText           : "Datum је nakon najvećeg dozvoljenog datuma",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Sledeći mesec (Control+Desno)',
+      prevText          : 'Prethodni mesec (Control+Levo)',
+      monthYearText     : 'Izaberite mesec (Control+Gore/Dole za izbor godine)',
+      todayTip          : "{0} (Razmaknica)",
+      format            : "d.m.y",
+      startDay 		 : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Strana",
+      afterPageText  : "od {0}",
+      firstText      : "Prva strana",
+      prevText       : "Prethodna strana",
+      nextText       : "Sledeća strana",
+      lastText       : "Poslednja strana",
+      refreshText    : "Osveži",
+      displayMsg     : "Prikazana {0} - {1} od {2}",
+      emptyMsg       : 'Nemam Å¡ta prikazati'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Minimalna dužina ovog polja је {0}",
+      maxLengthText : "Maksimalna dužina ovog polja је {0}",
+      blankText     : "Polje је obavezno",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Minimalna vrednost u polju је {0}",
+      maxText : "Maksimalna vrednost u polju је {0}",
+      nanText : "{0} nije pravilan broj"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Pasivno",
+      disabledDatesText : "Pasivno",
+      minText           : "Datum u ovom polju mora biti nakon {0}",
+      maxText           : "Datum u ovom polju mora biti pre {0}",
+      invalidText       : "{0} nije pravilan datum - zahtevani oblik je {1}",
+      format            : "d.m.y",
+      altFormats        : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Učitavam...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Ovo polje prihavata e-mail adresu isključivo u obliku "korisnik at domen.com"',
+      urlText      : 'Ovo polje prihavata URL adresu isključivo u obliku "http:/'+'/www.domen.com"',
+      alphaText    : 'Ovo polje može sadržati isključivo slova i znak _',
+      alphanumText : 'Ovo polje može sadržati само slova, brojeve i znak _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Rastući redosled",
+      sortDescText : "Opadajući redosled",
+      lockText     : "Zaključaj kolonu",
+      unlockText   : "Otključaj kolonu",
+      columnsText  : "Kolone"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Naziv",
+      valueText  : "Vrednost",
+      dateFormat : "d.m.Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Povući za izmenu veličine.",
+      collapsibleSplitTip : "Povući za izmenu veličine. Dvostruku klik za sakrivanje."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr_RS.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr_RS.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sr_RS.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,172 @@
+/*
+ * Serbian Cyrillic Translation
+ * by ÄŒolovic Vladan (cyrillic, utf8 encoding)
+ * sr_RS (ex: sr_CS, sr_YU)
+ * 12 May 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Учитавам...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} изабраних редова";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Затвори ову »картицу«";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Унешена вредност није правилна";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Учитавам...";
+}
+
+Date.monthNames = [
+   "Јануар",
+   "Фебруар",
+   "Март",
+   "Април",
+   "Мај",
+   "Јун",
+   "Јул",
+   "Август",
+   "Септембар",
+   "Октобар",
+   "Новембар",
+   "Децембар"
+];
+
+Date.dayNames = [
+   "Недеља",
+   "Понедељак",
+   "Уторак",
+   "Среда",
+   "Четвртак",
+   "Петак",
+   "Субота"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "У реду",
+      cancel : "Одустани",
+      yes    : "Да",
+      no     : "Не"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Данас",
+      minText           : "Датум је испред најмањег дозвољеног датума",
+      maxText           : "Датум је након највећег дозвољеног датума",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Следећи месец (Control+Десно)',
+      prevText          : 'Претходни месец (Control+Лево)',
+      monthYearText     : 'Изаберите месец (Control+Горе/Доле за избор године)',
+      todayTip          : "{0} (Размакница)",
+      format            : "d.m.y",
+      startDay 		 : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Страна",
+      afterPageText  : "од {0}",
+      firstText      : "Прва страна",
+      prevText       : "Претходна страна",
+      nextText       : "Следећа страна",
+      lastText       : "Последња страна",
+      refreshText    : "Освежи",
+      displayMsg     : "Приказана {0} - {1} од {2}",
+      emptyMsg       : 'Немам шта приказати'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Минимална дужина овог поља је {0}",
+      maxLengthText : "Максимална дужина овог поља је {0}",
+      blankText     : "Поље је обавезно",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Минимална вредност у пољу је {0}",
+      maxText : "Максимална вредност у пољу је {0}",
+      nanText : "{0} није правилан број"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Пасивно",
+      disabledDatesText : "Пасивно",
+      minText           : "Датум у овом пољу мора бити након {0}",
+      maxText           : "Датум у овом пољу мора бити пре {0}",
+      invalidText       : "{0} није правилан датум - захтевани облик је {1}",
+      format            : "d.m.y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Учитавам...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Ово поље прихвата e-mail адресу искључиво у облику "korisnik at domen.com"',
+      urlText      : 'Ово поље прихвата URL адресу искључиво у облику "http:/'+'/www.domen.com"',
+      alphaText    : 'Ово поље може садржати искључиво слова и знак _',
+      alphanumText : 'Ово поље може садржати само слова, бројеве и знак _'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Растући редослед",
+      sortDescText : "Опадајући редослед",
+      lockText     : "Закључај колону",
+      unlockText   : "Откључај колону",
+      columnsText  : "Колоне"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Назив",
+      valueText  : "Вредност",
+      dateFormat : "d.m.Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Повући за измену величине.",
+      collapsibleSplitTip : "Повући за измену величине. Двоструки клик за сакривање."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sv_SE.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sv_SE.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-sv_SE.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,172 @@
+/**
+ * Swedish translation (utf8-encoding)
+ * By Erik Andersson, Monator Technologies
+ * 24 April 2007
+ * Changed by Cariad, 29 July 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Laddar...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} markerade rad(er)";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Stäng denna flik";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Värdet i detta fält är inte tillåtet";
+}
+
+if(Ext.LoadMask){
+   Ext.LoadMask.prototype.msg = "Laddar...";
+}
+
+Date.monthNames = [
+   "januari",
+   "februari",
+   "mars",
+   "april",
+   "maj",
+   "juni",
+   "juli",
+   "augusti",
+   "september",
+   "oktober",
+   "november",
+   "december"
+];
+
+Date.dayNames = [
+   "söndag",
+   "måndag",
+   "tisdag",
+   "onsdag",
+   "torsdag",
+   "fredag",
+   "lördag"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Avbryt",
+      yes    : "Ja",
+      no     : "Nej"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "Y-m-d");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Idag",
+      minText           : "Detta datum inträffar före det tidigast tillåtna",
+      maxText           : "Detta datum inträffar efter det senast tillåtna",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Nästa månad (Ctrl + högerpil)',
+      prevText          : 'Föregående månad (Ctrl + vänsterpil)',
+      monthYearText     : 'Välj en månad (Ctrl + uppåtpil/neråtpil för att ändra årtal)',
+      todayTip          : "{0} (mellanslag)",
+      format            : "Y-m-d",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Sida",
+      afterPageText  : "av {0}",
+      firstText      : "Första sidan",
+      prevText       : "Föregående sida",
+      nextText       : "Nästa sida",
+      lastText       : "Sista sidan",
+      refreshText    : "Uppdatera",
+      displayMsg     : "Visar {0} - {1} av {2}",
+      emptyMsg       : 'Det finns ingen data att visa'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Minsta tillåtna längd för detta fält är {0}",
+      maxLengthText : "Största tillåtna längd för detta fält är {0}",
+      blankText     : "Detta fält är obligatoriskt",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Minsta tillåtna värde för detta fält är {0}",
+      maxText : "Största tillåtna värde för detta fält är {0}",
+      nanText : "{0} är inte ett tillåtet nummer"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Inaktiverad",
+      disabledDatesText : "Inaktiverad",
+      minText           : "Datumet i detta fält måste inträffa efter {0}",
+      maxText           : "Datumet i detta fält måste inträffa före {0}",
+      invalidText       : "{0} är inte ett tillåtet datum - datum ska anges i formatet {1}",
+      format            : "Y-m-d"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Laddar...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Detta fält ska innehålla en e-post adress i formatet "användare at domän.se"',
+      urlText      : 'Detta fält ska innehålla en länk (URL) i formatet "http:/'+'/www.domän.se"',
+      alphaText    : 'Detta fält får bara innehålla bokstäver och "_"',
+      alphanumText : 'Detta fält får bara innehålla bokstäver, nummer och "_"'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Sortera stigande",
+      sortDescText : "Sortera fallande",
+      lockText     : "LÃ¥s kolumn",
+      unlockText   : "LÃ¥s upp kolumn",
+      columnsText  : "Kolumner"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Namn",
+      valueText  : "Värde",
+      dateFormat : "Y-m-d"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Dra för att ändra storleken.",
+      collapsibleSplitTip : "Dra för att ändra storleken. Dubbelklicka för att gömma."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-th.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-th.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-th.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,288 @@
+/**
+ * List compiled by KillerNay on the extjs.com forums.
+ * Thank you KillerNay!
+ *
+ * Thailand Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">¡ÓÅѧâËÅŽ...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "{0} àÅ×Í¡áÅéÇ·Ñé§ËÁŽá¶Ç";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "»ÔŽá·çº¹Õé";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "€èҢͧªèͧ¹ÕéäÁè¶Ù¡µéͧ";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "¡ÓÅѧâËÅŽ...";
+}
+
+Date.monthNames = [
+  "Á¡ÃÒ€Á",
+  "¡ØÁŸÒӟѹžì",
+  "ÁÕ¹Ò€Á",
+  "àÁÉÒ¹",
+  "ŸÄÉÀÒ€Á",
+  "ÁԶعÒ¹",
+  "¡Ä¡¯Ò€Á",
+  "ÊÔ§ËÒ€Á",
+  "¡Ñ¹ÂÒ¹",
+  "µØÅÒ€Á",
+  "ŸÄÈšÔ¡Ò¹",
+  "žÑ¹ÇÒ€Á"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  "Á€" : 0,
+  "¡Ÿ" : 1,
+  "ÁÕ€" : 2,
+  "àÁÂ" : 3,
+  "Ÿ€" : 4,
+  "ÁÔÂ" : 5,
+  "¡€" : 6,
+  "Ê€" : 7,
+  "¡Â" : 8,
+  "µ€" : 9,
+  "ŸÂ" : 10,
+  "ž€" : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "ÍÒ·ÔµÂì",
+  "šÑ¹·Ãì",
+  "Íѧ€ÒÃ",
+  "ŸØמ",
+  "ŸÄËÑʺŽÕ",
+  "ÈØ¡Ãì",
+  "àÊÒÃì"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "µ¡Å§",
+    cancel : "¡àÅÔ¡",
+    yes    : "ãªè",
+    no     : "äÁèãªè"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "m/d/Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Çѹ¹Õé",
+    minText           : "This date is before the minimum date",
+    maxText           : "This date is after the maximum date",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'àŽ×͹¶ÑŽä» (Control+Right)',
+    prevText          : 'àŽ×͹¡è͹˹éÒ (Control+Left)',
+    monthYearText     : 'àÅ×Í¡àŽ×͹ (Control+Up/Down to move years)',
+    todayTip          : "{0} (Spacebar)",
+    format            : "m/d/y",
+    okText            : "&#160;µ¡Å§&#160;",
+    cancelText        : "¡àÅÔ¡",
+    startDay          : 0
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "˹éÒ",
+    afterPageText  : "of {0}",
+    firstText      : "˹éÒáá",
+    prevText       : "¡è͹˹éÒ",
+    nextText       : "¶ÑŽä»",
+    lastText       : "˹éÒÊØŽ·éÒÂ",
+    refreshText    : "ÃÕà¿Ãª",
+    displayMsg     : "¡ÓÅѧáÊŽ§ {0} - {1} šÒ¡ {2}",
+    emptyMsg       : 'äÁèÁÕ¢éÍÁÙÅáÊŽ§'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "The minimum length for this field is {0}",
+    maxLengthText : "The maximum length for this field is {0}",
+    blankText     : "This field is required",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "The minimum value for this field is {0}",
+    maxText : "The maximum value for this field is {0}",
+    nanText : "{0} is not a valid number"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "»ÔŽ",
+    disabledDatesText : "»ÔŽ",
+    minText           : "The date in this field must be after {0}",
+    maxText           : "The date in this field must be before {0}",
+    invalidText       : "{0} is not a valid date - it must be in the format {1}",
+    format            : "m/d/y",
+    altFormats        : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "¡ÓÅѧâËÅŽ...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'This field should be an e-mail address in the format "user at domain.com"',
+    urlText      : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
+    alphaText    : 'This field should only contain letters and _',
+    alphanumText : 'This field should only contain letters, numbers and _'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Please enter the URL for the link:',
+    buttonTips : {
+      bold : {
+        title: 'Bold (Ctrl+B)',
+        text: 'Make the selected text bold.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Italic (Ctrl+I)',
+        text: 'Make the selected text italic.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Underline (Ctrl+U)',
+        text: 'Underline the selected text.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Grow Text',
+        text: 'Increase the font size.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Shrink Text',
+        text: 'Decrease the font size.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Text Highlight Color',
+        text: 'Change the background color of the selected text.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Font Color',
+        text: 'Change the color of the selected text.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Align Text Left',
+        text: 'Align text to the left.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Center Text',
+        text: 'Center text in the editor.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'Align Text Right',
+        text: 'Align text to the right.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Bullet List',
+        text: 'Start a bulleted list.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Numbered List',
+        text: 'Start a numbered list.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Hyperlink',
+        text: 'Make the selected text a hyperlink.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Source Edit',
+        text: 'Switch to source editing mode.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Sort Ascending",
+    sortDescText : "Sort Descending",
+    lockText     : "Lock Column",
+    unlockText   : "Unlock Column",
+    columnsText  : "Columns"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(None)',
+    groupByText    : 'Group By This Field',
+    showGroupsText : 'Show in Groups'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Name",
+    valueText  : "Value",
+    dateFormat : "m/j/Y"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Drag to resize.",
+    collapsibleSplitTip : "Drag to resize. Double click to hide."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-tr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-tr.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-tr.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,299 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Turkish translation by Alper YAZGAN
+ * 2008-01-24 , 10:29 AM 
+*/
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Yükleniyor ...</div>';
+
+if(Ext.View){
+  Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+  Ext.grid.Grid.prototype.ddText = "Şeçili satır sayısı : {0}";
+}
+
+if(Ext.TabPanelItem){
+  Ext.TabPanelItem.prototype.closeText = "Sekmeyi kapat";
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "Bu alandaki değer geçersiz";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "Yükleniyor ...";
+}
+
+Date.monthNames = [
+  "Ocak",
+  "Åžubat",
+  "Mart",
+  "Nisan",
+  "Mayıs",
+  "Haziran",
+  "Temmuz",
+  "AÄŸustos",
+  "Eylül",
+  "Ekim",
+  "Kasım",
+  "Aralık"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  Jan : 0,
+  Feb : 1,
+  Mar : 2,
+  Apr : 3,
+  May : 4,
+  Jun : 5,
+  Jul : 6,
+  Aug : 7,
+  Sep : 8,
+  Oct : 9,
+  Nov : 10,
+  Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "Pazar",
+  "Pazartesi",
+  "Salı",
+  "Çarşamba",
+  "PerÅŸembe",
+  "Cuma",
+  "Cumartesi"
+];
+
+Date.shortDayNames = [
+  "Paz",
+  "Pzt",
+  "Sal",
+  "Çrş",
+  "PrÅŸ",
+  "Cum",
+  "Cmt"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.shortDayNames[day];
+};
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "Tamam",
+    cancel : "Ä°ptal",
+    yes    : "Evet",
+    no     : "Hayır"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "d/m/Y");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "Bugün",
+    minText           : "Bu tarih izin verilen en küçük tarihten daha önce",
+    maxText           : "Bu tarih izin verilen en büyük tarihten daha sonra",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'Gelecek Ay (Control+Right)',
+    prevText          : 'Önceki Ay (Control+Left)',
+    monthYearText     : 'Bir ay şeçiniz (Yılı artırmak/azaltmak için Control+Up/Down)',
+    todayTip          : "{0} (BoÅŸluk TuÅŸu - Spacebar)",
+    format            : "d/m/Y",
+    okText            : "&#160;Tamam&#160;",
+    cancelText        : "Ä°ptal",
+    startDay          : 1
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "Sayfa",
+    afterPageText  : " / {0}",
+    firstText      : "Ä°lk Sayfa",
+    prevText       : "Önceki Sayfa",
+    nextText       : "Sonraki Sayfa",
+    lastText       : "Son Sayfa",
+    refreshText    : "Yenile",
+    displayMsg     : "Gösterilen {0} - {1} / {2}",
+    emptyMsg       : 'Gösterilebilecek veri yok'
+  });
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "Girilen verinin uzunluÄŸu en az {0} olabilir",
+    maxLengthText : "Girilen verinin uzunluÄŸu en fazla {0} olabilir",
+    blankText     : "Bu alan boş bırakılamaz",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    minText : "En az {0} girilebilir",
+    maxText : "En çok {0} girilebilir",
+    nanText : "{0} geçersiz bir sayıdır"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "Disabled",
+    disabledDatesText : "Disabled",
+    minText           : "Bu tarih, {0} tarihinden daha sonra olmalıdır", 
+    maxText           : "Bu tarih, {0} tarihinden daha önce olmalıdır",
+    invalidText       : "{0} geçersiz bir tarihdir - tarih formatı {1} şeklinde olmalıdır",
+    format            : "d/m/Y",
+    altFormats        : "d.m.y|d.m.Y|d/m/y|d-m-Y|d-m-y|d.m|d/m|d-m|dm|dmY|dmy|d|Y.m.d|Y-m-d|Y/m/d"
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "Yükleniyor ...",
+    valueNotFoundText : undefined
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'Bu alan "user at domain.com" şeklinde elektronik posta formatında olmalıdır',
+    urlText      : 'Bu alan "http://www.domain.com" şeklinde URL adres formatında olmalıdır',
+    alphaText    : 'Bu alan sadece harf ve _ içermeli',
+    alphanumText : 'Bu alan sadece harf, sayı ve _ içermeli'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'Lütfen bu bağlantı için gerekli URL adresini giriniz:',
+    buttonTips : {
+      bold : {
+        title: 'Kalın(Bold) (Ctrl+B)',
+        text: 'Şeçili yazıyı kalın yapar.',
+        cls: 'x-html-editor-tip'
+      },
+      italic : {
+        title: 'Ä°talik(Italic) (Ctrl+I)',
+        text: 'Şeçili yazıyı italik yapar.',
+        cls: 'x-html-editor-tip'
+      },
+      underline : {
+        title: 'Alt Çizgi(Underline) (Ctrl+U)',
+        text: 'Şeçili yazının altını çizer.',
+        cls: 'x-html-editor-tip'
+      },
+      increasefontsize : {
+        title: 'Fontu büyült',
+        text: 'Yazı fontunu büyütür.',
+        cls: 'x-html-editor-tip'
+      },
+      decreasefontsize : {
+        title: 'Fontu küçült',
+        text: 'Yazı fontunu küçültür.',
+        cls: 'x-html-editor-tip'
+      },
+      backcolor : {
+        title: 'Arka Plan Rengi',
+        text: 'Seçili yazının arka plan rengini değiştir.',
+        cls: 'x-html-editor-tip'
+      },
+      forecolor : {
+        title: 'Yazı Rengi',
+        text: 'Seçili yazının rengini değiştir.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyleft : {
+        title: 'Sola Daya',
+        text: 'Yazıyı sola daya.',
+        cls: 'x-html-editor-tip'
+      },
+      justifycenter : {
+        title: 'Ortala',
+        text: 'Yazıyı editörde ortala.',
+        cls: 'x-html-editor-tip'
+      },
+      justifyright : {
+        title: 'SaÄŸa daya',
+        text: 'Yazıyı sağa daya.',
+        cls: 'x-html-editor-tip'
+      },
+      insertunorderedlist : {
+        title: 'Noktalı Liste',
+        text: 'Noktalı listeye başla.',
+        cls: 'x-html-editor-tip'
+      },
+      insertorderedlist : {
+        title: 'Numaralı Liste',
+        text: 'Numaralı lisyeye başla.',
+        cls: 'x-html-editor-tip'
+      },
+      createlink : {
+        title: 'Web Adresi(Hyperlink)',
+        text: 'Seçili yazıyı web adresi(hyperlink) yap.',
+        cls: 'x-html-editor-tip'
+      },
+      sourceedit : {
+        title: 'Kaynak kodu Düzenleme',
+        text: 'Kaynak kodu düzenleme moduna geç.',
+        cls: 'x-html-editor-tip'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "Artan sırada sırala",
+    sortDescText : "Azalan sırada sırala",
+    lockText     : "Kolonu kilitle",
+    unlockText   : "Kolon kilidini kaldır",
+    columnsText  : "Kolonlar"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(Yok)',
+    groupByText    : 'Bu Alana Göre Grupla',
+    showGroupsText : 'Gruplar Halinde Göster'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "Ad",
+    valueText  : "DeÄŸer",
+    dateFormat : "d/m/Y"
+  });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "Yeniden boyutlandırmak için sürükle.",
+    collapsibleSplitTip : "Yeniden boyutlandırmak için sürükle. Saklamak için çift tıkla."
+  });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ukr.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ukr.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-ukr.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,252 @@
+/*
+ * Ukrainian translation
+ * By zlatko (utf-8 encoding)
+ * 3 October 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Триває завантаження...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} вибраних стрічок";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Закрити цю вкладку";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Значення у цьому полі невірне";
+}
+
+if(Ext.LoadMask){
+   Ext.LoadMask.prototype.msg = "Завантаження...";
+}
+
+Date.monthNames = [
+   "Січень",
+   "Лютий",
+   "Березень",
+   "Квітень",
+   "Травень",
+   "Червень",
+   "Липень",
+   "Серпень",
+   "Вересень",
+   "Жовтень",
+   "Листопад",
+   "Грудень"
+];
+
+Date.dayNames = [
+   "Неділя",
+   "Понеділок",
+   "Вівторок",
+   "Середа",
+   "Четвер",
+   "Пятниця",
+   "Субота"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "OK",
+      cancel : "Відміна",
+      yes    : "Так",
+      no     : "Ні"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d.m.Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Сьогодні",
+      minText           : "Ця дата менше мінімальної дати",
+      maxText           : "Ця дата більше максимальної дати",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames        : Date.monthNames,
+      dayNames	        : Date.dayNames,
+      nextText          : 'Наступний місяць (Control+Вправо)',
+      prevText          : 'Попередній місяць (Control+Вліво)',
+      monthYearText     : 'Вибір місяця (Control+Вверх/Вниз для вибору року)',
+      todayTip          : "{0} (Пробіл)",
+      format            : "d.m.y",
+      okText            : "&#160;OK&#160;",
+      cancelText        : "Відміна",
+      startDay          : 1
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Сторінка",
+      afterPageText  : "з {0}",
+      firstText      : "Перша сторінка",
+      prevText       : "Попередня сторінка",
+      nextText       : "Наступна сторінка",
+      lastText       : "Остання сторінка",
+      refreshText    : "Обновити",
+      displayMsg     : "Відображаються записи з {0} по {1}, всього {2}",
+      emptyMsg       : 'Дані для відображення відсутні'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Мінімальна довжина цього поля {0}",
+      maxLengthText : "Максимальна довжина цього поля {0}",
+      blankText     : "Це поле є обов’язковим для заповнення",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Значення цього поля не може бути менше {0}",
+      maxText : "Значення цього поля не може бути більше {0}",
+      nanText : "{0} не являється числом"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Не доступно",
+      disabledDatesText : "Не доступно",
+      minText           : "Дата в цьому полі повинна бути більше {0}",
+      maxText           : "Дата в цьому полі повинна бути менше {0}",
+      invalidText       : "{0} неправильна дата - дата повинна бути вказана у  форматі {1}",
+      format            : "d.m.y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Завантаження...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Це поле повинно містити адресу електронної почти у форматі "user at domain.com"',
+      urlText      : 'Це поле повинно містити URL у форматі "http:/'+'/www.domain.com"',
+      alphaText    : 'Це поле повинно містити виключно латинські літери та символ підкреслення "_"',
+      alphanumText : 'Це поле повинно містити виключно латинські літери, цифри та символ підкреслення "_"'
+   });
+}
+
+if(Ext.form.HtmlEditor){
+   Ext.apply(Ext.form.HtmlEditor.prototype, {
+     createLinkText : 'Будь-ласка введіть адресу:',
+     buttonTips : {
+            bold : {
+               title: 'Напівжирний (Ctrl+B)',
+               text: 'Застосування напівжирного до виділеного тексту.',
+               cls: 'x-html-editor-tip'
+            },
+            italic : {
+               title: 'Курсив (Ctrl+I)',
+               text: ' Застосування курсиву до виділеного тексту.',
+               cls: 'x-html-editor-tip'
+            },
+            underline : {
+               title: 'Підкреслений (Ctrl+U)',
+               text: ' Застосування підкреслення до виділенного тексту.',
+               cls: 'x-html-editor-tip'
+           },
+           increasefontsize : {
+               title: 'Збільшити розмір',
+               text: 'Збільшення розміру шрифта.',
+               cls: 'x-html-editor-tip'
+           },
+           decreasefontsize : {
+               title: 'Зменшити розмір',
+               text: 'Зменшення розміру шрифта.',
+               cls: 'x-html-editor-tip'
+           },
+           backcolor : {
+               title: 'Заливка',
+               text: 'Зміна кольору фону для виділеного тексту або абзацу.',
+               cls: 'x-html-editor-tip'
+           },
+           forecolor : {
+               title: 'Колір тексту',
+               text: 'Зміна кольору тексту.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyleft : {
+               title: 'Вирівняти текст по лівій границі',
+               text: 'Вирівнювання тексту по лівій границі.',
+               cls: 'x-html-editor-tip'
+           },
+           justifycenter : {
+               title: 'Вирівняти текст по центру',
+               text: 'Вирівнювання тексту по центру.',
+               cls: 'x-html-editor-tip'
+           },
+           justifyright : {
+               title: 'Вирівняти текст по правій границі',
+               text: 'Вирівнювання тексту по правій границі.',
+               cls: 'x-html-editor-tip'
+           },
+           insertunorderedlist : {
+               title: 'Маркери',
+               text: 'Почати маркований список.',
+               cls: 'x-html-editor-tip'
+           },
+           insertorderedlist : {
+               title: 'Нумерація',
+               text: 'Почати нумернований список.',
+               cls: 'x-html-editor-tip'
+           },
+           createlink : {
+               title: 'Вставити гіперпосилання',
+               text: 'Створення посилання із виділеного тексту.',
+               cls: 'x-html-editor-tip'
+           },
+           sourceedit : {
+               title: 'Вихідний код',
+               text: 'Переключитись на вихідний код.',
+               cls: 'x-html-editor-tip'
+           }
+        }
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Сортувати по зростанню",
+      sortDescText : "Сортувати по спаданню",
+      lockText     : "Закріпити колонку",
+      unlockText   : "Зняти закріплення колонки",
+      columnsText  : "Колонки"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Назва",
+      valueText  : "Значення",
+      dateFormat : "j.m.Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Тягніть для зміни розміру.",
+      collapsibleSplitTip : "Тягніть для зміни розміру. Подвійний клік сховає панель."
+   });
+}
+

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-vn.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-vn.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-vn.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,175 @@
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ */
+
+/**
+ * Vietnamese translation
+ * By bpmtri
+ * 12-April-2007 04:06PM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Đang tải...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} dòng được chọn";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "Đóng thẻ này";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "Giá trị của ô này không hợp lệ.";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "Đang tải...";
+}
+
+Date.monthNames = [
+   "Tháng 1",
+   "Tháng 2",
+   "Tháng 3",
+   "Tháng 4",
+   "Tháng 5",
+   "Tháng 6",
+   "Tháng 7",
+   "Tháng 8",
+   "Tháng 9",
+   "Tháng 10",
+   "Tháng 11",
+   "Tháng 12"
+];
+
+Date.dayNames = [
+   "Chủ nhật",
+   "Thứ hai",
+   "Thứ ba",
+   "Thứ tư",
+   "Thứ năm",
+   "Thứ sáu",
+   "Thứ bảy"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "Đồng ý",
+      cancel : "Hủy bỏ",
+      yes    : "Có",
+      no     : "Không"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "d/m/Y");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "Hôm nay",
+      minText           : "Ngày này nhỏ hơn ngày nhỏ nhất",
+      maxText           : "Ngày này lớn hơn ngày lớn nhất",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames	: Date.monthNames,
+      dayNames		: Date.dayNames,
+      nextText          : 'Tháng sau (Control+Right)',
+      prevText          : 'Tháng trước (Control+Left)',
+      monthYearText     : 'Chọn một tháng (Control+Up/Down để thay đổi năm)',
+      todayTip          : "{0} (Spacebar - Phím trắng)",
+      format            : "d/m/y"
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "Trang",
+      afterPageText  : "of {0}",
+      firstText      : "Trang đầu",
+      prevText       : "Trang trÆ°á»›c",
+      nextText       : "Trang sau",
+      lastText       : "Trang cuối",
+      refreshText    : "Tải lại",
+      displayMsg     : "Hiển thị {0} - {1} của {2}",
+      emptyMsg       : 'Không có dữ liệu để hiển thị'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "Chiều dài tối thiểu của ô này là {0}",
+      maxLengthText : "Chiều dài tối đa của ô này là {0}",
+      blankText     : "Ô này cần phải nhập giá trị",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "Giá trị nhỏ nhất của ô này là {0}",
+      maxText : "Giá trị lớn nhất của ô này là  {0}",
+      nanText : "{0} hông phải là một số hợp lệ"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "Vô hiệu",
+      disabledDatesText : "Vô hiệu",
+      minText           : "Ngày nhập trong ô này phải sau ngày {0}",
+      maxText           : "Ngày nhập trong ô này phải trước ngày {0}",
+      invalidText       : "{0} không phải là một ngày hợp lệ - phải có dạng {1}",
+      format            : "d/m/y"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "Đang tải...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : 'Giá trị của ô này phải là một địa chỉ email có dạng như "ten at abc.com"',
+      urlText      : 'Giá trị của ô này phải là một địa chỉ web(URL) hợp lệ, có dạng như "http:/'+'/www.domain.com"',
+      alphaText    : 'Ô này chỉ được nhập các kí tự và gạch dưới(_)',
+      alphanumText : 'Ô này chỉ được nhập các kí tự, số và gạch dưới(_)'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "Tăng dần",
+      sortDescText : "Giảm dần",
+      lockText     : "Khóa cột",
+      unlockText   : "Bỏ khóa cột",
+      columnsText  : "Các cột"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "Tên",
+      valueText  : "Giá trị",
+      dateFormat : "j/m/Y"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "Kéo giữ chuột để thay đổi kích thước.",
+      collapsibleSplitTip : "Kéo giữ chuột để thay đổi kích thước. Nhấp đúp để ẩn đi."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_CN.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_CN.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_CN.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,168 @@
+/*
+ * Simplified Chinese translation
+ * By DavidHu
+ * 09 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">加载中...</div>';
+
+if(Ext.View){
+   Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+   Ext.grid.Grid.prototype.ddText = "{0} 选择行";
+}
+
+if(Ext.TabPanelItem){
+   Ext.TabPanelItem.prototype.closeText = "关闭";
+}
+
+if(Ext.form.Field){
+   Ext.form.Field.prototype.invalidText = "输入值非法";
+}
+
+Date.monthNames = [
+   "一月",
+   "二月",
+   "三月",
+   "四月",
+   "五月",
+   "六月",
+   "七月",
+   "八月",
+   "九月",
+   "十月",
+   "十一月",
+   "十二月"
+];
+
+Date.dayNames = [
+   "æ—¥",
+   "一",
+   "二",
+   "三",
+   "å››",
+   "五",
+   "å…­"
+];
+
+if(Ext.MessageBox){
+   Ext.MessageBox.buttonText = {
+      ok     : "确定",
+      cancel : "取消",
+      yes    : "是",
+      no     : "否"
+   };
+}
+
+if(Ext.util.Format){
+   Ext.util.Format.date = function(v, format){
+      if(!v) return "";
+      if(!(v instanceof Date)) v = new Date(Date.parse(v));
+      return v.dateFormat(format || "y年m月d日");
+   };
+}
+
+if(Ext.DatePicker){
+   Ext.apply(Ext.DatePicker.prototype, {
+      todayText         : "今天",
+      minText           : "日期在最小日期之前",
+      maxText           : "日期在最大日期之后",
+      disabledDaysText  : "",
+      disabledDatesText : "",
+      monthNames        : Date.monthNames,
+      dayNames          : Date.dayNames,
+      nextText          : '下月 (Control+Right)',
+      prevText          : '上月 (Control+Left)',
+      monthYearText     : '选择一个月 (Control+Up/Down 来改变年)',
+      todayTip          : "{0} (空格键选择)",
+      format            : "y年m月d日",
+      okText            : "确定",
+      cancelText        : "取消"
+   });
+}
+
+if(Ext.PagingToolbar){
+   Ext.apply(Ext.PagingToolbar.prototype, {
+      beforePageText : "页",
+      afterPageText  : "页共 {0} 页",
+      firstText      : "第一页",
+      prevText       : "前一页",
+      nextText       : "下一页",
+      lastText       : "最后页",
+      refreshText    : "刷新",
+      displayMsg     : "显示 {0} - {1},共 {2} 条",
+      emptyMsg       : '没有数据需要显示'
+   });
+}
+
+if(Ext.form.TextField){
+   Ext.apply(Ext.form.TextField.prototype, {
+      minLengthText : "该输入项的最小长度是 {0}",
+      maxLengthText : "该输入项的最大长度是 {0}",
+      blankText     : "该输入项为必输项",
+      regexText     : "",
+      emptyText     : null
+   });
+}
+
+if(Ext.form.NumberField){
+   Ext.apply(Ext.form.NumberField.prototype, {
+      minText : "该输入项的最小值是 {0}",
+      maxText : "该输入项的最大值是 {0}",
+      nanText : "{0} 不是有效数值"
+   });
+}
+
+if(Ext.form.DateField){
+   Ext.apply(Ext.form.DateField.prototype, {
+      disabledDaysText  : "禁用",
+      disabledDatesText : "禁用",
+      minText           : "该输入项的日期必须在 {0} 之后",
+      maxText           : "该输入项的日期必须在 {0} 之前",
+      invalidText       : "{0} 是无效的日期 - 必须符合格式: {1}",
+      format            : "y年m月d日"
+   });
+}
+
+if(Ext.form.ComboBox){
+   Ext.apply(Ext.form.ComboBox.prototype, {
+      loadingText       : "加载...",
+      valueNotFoundText : undefined
+   });
+}
+
+if(Ext.form.VTypes){
+   Ext.apply(Ext.form.VTypes, {
+      emailText    : '该输入项必须是电子邮件地址,格式如: "user at domain.com"',
+      urlText      : '该输入项必须是URL地址,格式如: "http:/'+'/www.domain.com"',
+      alphaText    : '该输入项只能包含字符和_',
+      alphanumText : '该输入项只能包含字符,数字和_'
+   });
+}
+
+if(Ext.grid.GridView){
+   Ext.apply(Ext.grid.GridView.prototype, {
+      sortAscText  : "正序",
+      sortDescText : "逆序",
+      lockText     : "锁列",
+      unlockText   : "解锁列",
+      columnsText  : "列"
+   });
+}
+
+if(Ext.grid.PropertyColumnModel){
+   Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+      nameText   : "名称",
+      valueText  : "值",
+      dateFormat : "y年m月d日"
+   });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+   Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+      splitTip            : "拖动来改变尺寸.",
+      collapsibleSplitTip : "拖动来改变尺寸. 双击隐藏."
+   });
+}

Added: trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_TW.js
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_TW.js	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/app/public/js/ext/source/locale/ext-lang-zh_TW.js	2008-10-29 14:25:29 UTC (rev 935)
@@ -0,0 +1,172 @@
+/*
+ * Traditional Chinese translation
+ * By hata1234
+ * 09 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">讀取中...</div>';
+
+if(Ext.View){
+    Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+    Ext.grid.Grid.prototype.ddText = "選擇了 {0} 行";
+}
+
+if(Ext.TabPanelItem){
+    Ext.TabPanelItem.prototype.closeText = "關閉此標籤";
+}
+
+if(Ext.form.Field){
+    Ext.form.Field.prototype.invalidText = "數值不符合欄位規定";
+}
+
+if(Ext.LoadMask){
+    Ext.LoadMask.prototype.msg = "讀取中...";
+}
+
+Date.monthNames = [
+    "一月",
+    "二月",
+    "三月",
+    "四月",
+    "五月",
+    "六月",
+    "七月",
+    "八月",
+    "九月",
+    "十月",
+    "十一月",
+    "十二月"
+];
+
+Date.dayNames = [
+    "æ—¥",
+    "一",
+    "二",
+    "三",
+    "å››",
+    "五",
+    "å…­"
+];
+
+if(Ext.MessageBox){
+    Ext.MessageBox.buttonText = {
+        ok : "確定",
+        cancel : "取消",
+        yes : "是",
+        no : "否"
+    };
+}
+
+if(Ext.util.Format){
+    Ext.util.Format.date = function(v, format){
+       if(!v) return "";
+       if(!(v instanceof Date)) v = new Date(Date.parse(v));
+       return v.dateFormat(format || "Y/m/d");
+    };
+}
+
+if(Ext.DatePicker){
+    Ext.apply(Ext.DatePicker.prototype, {
+       todayText         : "今天",
+       minText           : "日期必須大於最小容許日期",
+       maxText           : "日期必須小於最大容許日期",
+       disabledDaysText  : "",
+       disabledDatesText : "",
+       monthNames        : Date.monthNames,
+       dayNames          : Date.dayNames,       
+       nextText          : "下個月 (Ctrl+右方向鍵)",
+       prevText          : "上個月 (Ctrl+左方向鍵)",
+       monthYearText     : "選擇月份 (Ctrl+上/下方向鍵選擇年份)",
+       todayTip          : "{0} (空白鍵)",
+       format            : "y/m/d",
+       okText            : "确定",
+       cancelText        : "取消"
+    });
+}
+
+if(Ext.PagingToolbar){
+    Ext.apply(Ext.PagingToolbar.prototype, {
+       beforePageText : "第",
+       afterPageText  : "頁,共{0}頁",
+       firstText      : "第一頁",
+       prevText       : "上一頁",
+       nextText       : "下一頁",
+       lastText       : "最後頁",
+       refreshText    : "重新整理",
+       displayMsg     : "顯示{0} - {1}頁,共{2}頁",
+       emptyMsg       : '沒有任何資料'
+    });
+}
+
+if(Ext.form.TextField){
+    Ext.apply(Ext.form.TextField.prototype, {
+       minLengthText : "此欄位最少要輸入 {0} 個字",
+       maxLengthText : "此欄位最多輸入 {0} 個字",
+       blankText     : "此欄位為必填",
+       regexText     : "",
+       emptyText     : null
+    });
+}
+
+if(Ext.form.NumberField){
+    Ext.apply(Ext.form.NumberField.prototype, {
+       minText : "此欄位之數值必須大於 {0}",
+       maxText : "此欄位之數值必須小於 {0}",
+       nanText : "{0} 不是合法的數字"
+    });
+}
+
+if(Ext.form.DateField){
+    Ext.apply(Ext.form.DateField.prototype, {
+       disabledDaysText  : "無法使用",
+       disabledDatesText : "無法使用",
+       minText           : "此欄位之日期必須在 {0} 之後",
+       maxText           : "此欄位之日期必須在 {0} 之前",
+       invalidText       : "{0} 不是正確的日期格式 - 必須像是 「 {1} 」 這樣的格式",
+       format            : "Y/m/d"
+    });
+}
+
+if(Ext.form.ComboBox){
+    Ext.apply(Ext.form.ComboBox.prototype, {
+       loadingText       : "讀取中 ...",
+       valueNotFoundText : undefined
+    });
+}
+
+if(Ext.form.VTypes){
+    Ext.apply(Ext.form.VTypes, {
+       emailText    : '此欄位必須輸入像 "user at domain.com" 之E-Mail格式',
+       urlText      : '此欄位必須輸入像 "http:/'+'/www.domain.com" 之網址格式',
+       alphaText    : '此欄位僅能輸入半形英文字母及底線( _ )符號',
+       alphanumText : '此欄位僅能輸入半形英文字母、數字及底線( _ )符號'
+    });
+}
+
+if(Ext.grid.GridView){
+    Ext.apply(Ext.grid.GridView.prototype, {
+       sortAscText  : "正向排序",
+       sortDescText : "反向排序",
+       lockText     : "鎖定欄位",
+       unlockText   : "解開欄位鎖定",
+       columnsText  : "欄位"
+    });
+}
+
+if(Ext.grid.PropertyColumnModel){
+    Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+       nameText   : "名稱",
+       valueText  : "數值",
+       dateFormat : "Y/m/d"
+    });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+    Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+       splitTip            : "拖曳縮放大小.",
+       collapsibleSplitTip : "拖曳縮放大小. 滑鼠雙擊隱藏."
+    });
+}

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/access/FinderServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/access/FinderServiceDefault.java	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/access/FinderServiceDefault.java	2008-10-29 14:25:29 UTC (rev 935)
@@ -132,6 +132,9 @@
     private Content findByContentReference(final String groupName, final String toolName, final Long folderId,
             final Long contentId) throws ContentNotFoundException {
         final Content descriptor = contentManager.find(contentId);
+        if (descriptor == null) {
+            throw new ContentNotFoundException();
+        }
         final Container container = descriptor.getContainer();
 
         if (!container.getId().equals(folderId)) {

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java	2008-10-29 14:25:29 UTC (rev 935)
@@ -123,7 +123,7 @@
 
     @Transient
     public AccessLists getAccessLists() {
-        return hasAccessList() ? accessLists : isLeaf() ? getParent().getAccessLists() : getOwner().getAccessLists();
+        return hasAccessList() ? accessLists : isRoot() ? getOwner().getAccessLists() : getParent().getAccessLists();
     }
 
     public List<ContainerTranslation> getAliases() {

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java	2008-10-29 14:25:29 UTC (rev 935)
@@ -31,7 +31,6 @@
 import com.calclab.suco.client.ioc.Provider;
 import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Hyperlink;
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.SimplePanel;
@@ -46,7 +45,7 @@
         private static final String LOGO_SMALL_FONT_STYLE = "k-elogo-l-s";
         private static final String LOGO_LARGE_FONT_STYLE = "k-elogo-l-l";
         private final Label logoLabel;
-        private final Hyperlink putYourLogoHL;
+        private final Label putYourLogoHL;
         private final HorizontalPanel putYourLogoHP;
         private final Image logoImage;
 
@@ -59,8 +58,12 @@
             logoLabel = new Label();
             final Label expandCell = new Label("");
             putYourLogoHP = new HorizontalPanel();
-            putYourLogoHL = new Hyperlink();
+            putYourLogoHL = new Label();
 
+            logoImage.ensureDebugId(LOGO_IMAGE);
+            logoLabel.ensureDebugId(LOGO_NAME);
+            putYourLogoHL.ensureDebugId(PUT_YOUR_LOGO_LINK);
+
             // Layout
             add(generalHP);
             generalHP.add(logoImage);
@@ -74,6 +77,7 @@
 
             setPutYourLogo();
             expandCell.setStyleName("k-elogop-expand");
+            putYourLogoHL.setStyleName("k-elogo-plink");
             putYourLogoHL.addStyleName("kune-pointer");
             putYourLogoHL.addClickListener(new ClickListener() {
                 public void onClick(final Widget sender) {
@@ -144,6 +148,9 @@
             logoLabel.removeStyleName(LOGO_MEDIUM_FONT_STYLE);
         }
     }
+    public static final String LOGO_NAME = "k-elogop-ln";
+    public static final String LOGO_IMAGE = "k-elogop-image";
+    public static final String PUT_YOUR_LOGO_LINK = "k-elogop-pyll";
 
     private final Provider<FileDownloadUtils> downloadProvider;
     private final Provider<EntityLogoSelector> entityLogoSelectorProvider;

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java	2008-10-29 14:25:29 UTC (rev 935)
@@ -50,7 +50,7 @@
 
 public class NewGroupPanel extends WizardDialog implements NewGroupView {
     public static final String REGISTER_A_NEW_GROUP_TITLE = "Register a new Group";
-    public static final String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain characters, numbers, and dashes";
+    public static final String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain occidental characters, numbers, and dashes";
     public static final String SHORTNAME_FIELD = "k-ngp-short_name";
     public static final String LONGNAME_FIELD = "k-ngp-long_name";
     public static final String PUBLICDESC_FIELD = "k-ngp-public_desc";

Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java	2008-10-29 14:25:29 UTC (rev 935)
@@ -1,8 +1,12 @@
 package org.ourproject.kune.platf.integration.selenium;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.Date;
 
+import org.junit.After;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.ourproject.kune.workspace.client.signin.RegisterForm;
 import org.ourproject.kune.workspace.client.signin.RegisterPanel;
 import org.ourproject.kune.workspace.client.signin.SignInForm;
@@ -19,12 +23,41 @@
 
     protected static final String KUNE_BASE_URL = "/kune/?locale=en#";
 
+    private static File dirCaptures;
+
+    @BeforeClass
+    public static void beforeKuneClass() {
+        dirCaptures = new File("img/captures/");
+        if (!dirCaptures.exists()) {
+            dirCaptures.mkdir();
+        }
+    }
+
+    private boolean mustCapture;
+
+    @After
+    public void after() throws IOException {
+        if (mustCapture) {
+            selenium.captureEntirePageScreenshot(File.createTempFile("kune", "capture.png", dirCaptures).getAbsolutePath());
+        }
+    }
+
     @Before
     public void before() {
-        selenium.deleteAllVisibleCookies();
-        selenium.refresh();
+        mustCapture = false;
+        try {
+            selenium.deleteAllVisibleCookies();
+            selenium.refresh();
+            selenium.windowMaximize();
+        } catch (final UnsupportedOperationException e) {
+            System.err.println("Seems that selenium server is not running; run before: 'mvn selenium:start-server' ");
+        }
     }
 
+    public void setMustCapture(boolean mustCapture) {
+        this.mustCapture = mustCapture;
+    }
+
     protected long genPrefix() {
         long prefix = new Date().getTime();
         return prefix;

Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java	2008-10-29 14:25:29 UTC (rev 935)
@@ -2,9 +2,9 @@
 
 import static org.junit.Assert.assertFalse;
 
-import org.junit.Ignore;
 import org.junit.Test;
 import org.ourproject.kune.platf.client.dto.GroupType;
+import org.ourproject.kune.workspace.client.entitylogo.EntityLogoPanel;
 import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
 import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
 import org.ourproject.kune.workspace.client.site.SiteToken;
@@ -29,17 +29,25 @@
         waitForTextInside(SiteToastMessagePanel.MESSAGE, NewGroupPresenter.REGISTER_TO_CREATE_A_GROUP);
     }
 
-    @Ignore
+    @Test
     public void newGroupWithExistingNicknameFails() throws Exception {
-        setMustStopFinally(false);
         signInAndNewGroup();
         fillNewGroup1stPage("admin", "some long name" + genPrefix(), "some public description", "tag1 tag2 tag3",
                 GroupType.ORGANIZATION);
         click(NewGroupPanel.NEXT_BUTTON);
         click(NewGroupPanel.FINISH_BUTTON);
-        waitForTextInside(NewGroupPanel.ERROR_MSG_BAR, NewGroupPresenter.NAME_IN_ALREADY_IN_USE);
+        waitForTextInside(gid(NewGroupPanel.ERROR_MSG_BAR), NewGroupPresenter.NAME_IN_ALREADY_IN_USE);
     }
 
+    @Test
+    public void newGroupWithNonOccidentalChars() throws Exception {
+        setMustCapture(true);
+        String longName = "漢語 中文 华语 汉语" + genPrefix();
+        newGroupRegistrationDefLicense("g" + genPrefix(), longName,
+                "吗 台湾 六种辅音韵尾 中国政府要求在中国出售的软件必须使用编码 过 国标 名词的复数形式只在代词及多音节", "漢語 中文 华语 汉语");
+        waitForTextInside(gid(EntityLogoPanel.LOGO_NAME), longName);
+    }
+
     private void fillNewGroup1stPage(String shortname, String longName, String description, String tags,
             GroupType groupType) throws Exception {
         type(NewGroupPanel.SHORTNAME_FIELD, shortname);
@@ -62,6 +70,15 @@
         }
     }
 
+    private void newGroupRegistrationDefLicense(String shortname, String longName, String description, String tags)
+            throws Exception {
+        GroupType organization = GroupType.ORGANIZATION;
+        signInAndNewGroup();
+        fillNewGroup1stPage(shortname, longName, description, tags, organization);
+        click(NewGroupPanel.NEXT_BUTTON);
+        click(NewGroupPanel.FINISH_BUTTON);
+    }
+
     private void signInAndNewGroup() throws Exception {
         openDefPage();
         signIn();
@@ -69,5 +86,4 @@
         verifyLoggedUserShorName("admin");
         waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, NewGroupPanel.REGISTER_A_NEW_GROUP_TITLE);
     }
-
 }

Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SeleniumTestHelper.java	2008-10-29 14:25:29 UTC (rev 935)
@@ -44,7 +44,7 @@
         // "*firefox /usr/lib/firefox-3.0.3/firefox", url);
 
         // this is a problem... platform dependence ...
-        selenium = new DefaultSelenium("localhost", 4441, "*firefox /usr/lib/firefox/firefox-2-bin",
+        selenium = new DefaultSelenium("localhost", 4441, "*chrome /usr/lib/firefox/firefox-2-bin",
                 "http://localhost:8080/");
         selenium.start();
     }

Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java	2008-10-29 14:25:29 UTC (rev 935)
@@ -38,7 +38,8 @@
     @Test
     public void registerSomeUser() throws Exception {
         openDefPage();
-        registerValidUser(true);
+        String user = registerValidUser(true);
+        verifyLoggedUserShorName(user);
     }
 
     @Test
@@ -53,6 +54,15 @@
     }
 
     @Test
+    public void registerUserWithNonOccidentalChars() throws Exception {
+        openDefPage();
+        String user = "u" + genPrefix();
+        register(user, "漢語 中文 华语 汉语" + genPrefix() + genPrefix(), "somepasswd", "somepasswd", genPrefix()
+                + "@example.com", "Andorra", "English", "MET", true);
+        verifyLoggedUserShorName(user);
+    }
+
+    @Test
     public void testRegisterToken() throws Exception {
         open(SiteToken.register);
         assertFalse(selenium.isTextPresent(RegisterPanel.REGISTER_TITLE));

Modified: trunk/src/test/java/org/ourproject/kune/platf/server/access/FinderTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/access/FinderTest.java	2008-10-28 15:40:27 UTC (rev 934)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/access/FinderTest.java	2008-10-29 14:25:29 UTC (rev 935)
@@ -106,6 +106,11 @@
         verify(contentManager);
     }
 
+    @Test(expected = ContentNotFoundException.class)
+    public void testContainerExistsButContentNotFound() throws Exception {
+        finder.getContent(new StateToken("groupShortName", "toolName", "1", "999"), null);
+    }
+
     @Test
     public void testDefaultGroupContent() throws Exception {
         final Group userGroup = new Group();




More information about the kune-commits mailing list