You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by sa...@apache.org on 2011/11/28 09:04:34 UTC

svn commit: r1207005 [4/9] - in /ofbiz/branches/jackrabbit20100709: ./ applications/accounting/config/ applications/accounting/servicedef/ applications/commonext/config/ applications/commonext/data/ applications/commonext/widget/ applications/content/ ...

Modified: ofbiz/branches/jackrabbit20100709/applications/content/src/org/ofbiz/content/search/ContentDocument.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/content/src/org/ofbiz/content/search/ContentDocument.java?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/content/src/org/ofbiz/content/search/ContentDocument.java (original)
+++ ofbiz/branches/jackrabbit20100709/applications/content/src/org/ofbiz/content/search/ContentDocument.java Mon Nov 28 08:04:21 2011
@@ -20,7 +20,6 @@ package org.ofbiz.content.search;
 
 import java.io.IOException;
 import java.sql.Timestamp;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -78,11 +77,9 @@ public class ContentDocument {
         doc = new Document();
         String contentId = content.getString("contentId");
         doc.add(new Field("contentId", contentId, Store.YES, Index.NOT_ANALYZED, TermVector.NO));
-        // Add the last modified date of the file a field named "modified". Use
-        // a
+        // Add the last modified date of the file a field named "modified". Use a
         // Keyword field, so that it's searchable, but so that no attempt is
-        // made
-        // to tokenize the field into words.
+        // made to tokenize the field into words.
         Timestamp modDate = (Timestamp) content.get("lastModifiedDate");
         if (modDate == null) {
             modDate = (Timestamp) content.get("createdDate");
@@ -180,9 +177,7 @@ public class ContentDocument {
             return false;
         }
         List<String> featureList = FastList.newInstance();
-        Iterator<GenericValue> iter = featureDataResourceList.iterator();
-        while (iter.hasNext()) {
-            GenericValue productFeatureDataResource = iter .next();
+        for (GenericValue productFeatureDataResource : featureDataResourceList) {
             String feature = productFeatureDataResource.getString("productFeatureId");
             featureList.add(feature);
         }

Modified: ofbiz/branches/jackrabbit20100709/applications/content/src/org/ofbiz/content/search/SearchWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/content/src/org/ofbiz/content/search/SearchWorker.java?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/content/src/org/ofbiz/content/search/SearchWorker.java (original)
+++ ofbiz/branches/jackrabbit20100709/applications/content/src/org/ofbiz/content/search/SearchWorker.java Mon Nov 28 08:04:21 2011
@@ -20,7 +20,6 @@ package org.ofbiz.content.search;
 
 import java.io.File;
 import java.io.FileNotFoundException;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -65,17 +64,13 @@ public class SearchWorker {
         List<GenericValue> siteList = ContentWorker.getAssociatedContent(content, "To", UtilMisc.toList("SUBSITE", "PUBLISH_LINK", "SUB_CONTENT"), null, UtilDateTime.nowTimestamp().toString(), null);
 
         if (siteList != null) {
-            Iterator<GenericValue> iter = siteList.iterator();
-            while (iter.hasNext()) {
-                GenericValue siteContent = iter.next();
+            for (GenericValue siteContent : siteList) {
                 String siteContentId = siteContent.getString("contentId");
                 List<GenericValue> subContentList = ContentWorker.getAssociatedContent(siteContent, "To", UtilMisc.toList("SUBSITE", "PUBLISH_LINK", "SUB_CONTENT"), null, UtilDateTime.nowTimestamp().toString(), null);
 
                 if (subContentList != null) {
                     List<String> contentIdList = FastList.newInstance();
-                    Iterator<GenericValue> iter2 = subContentList.iterator();
-                    while (iter2.hasNext()) {
-                        GenericValue subContent = iter2.next();
+                    for (GenericValue subContent : subContentList) {
                         contentIdList.add(subContent.getString("contentId"));
                     }
 
@@ -108,7 +103,6 @@ public class SearchWorker {
         if (Debug.infoOn()) Debug.logInfo("in indexContent, indexAllPath: " + directory.toString(), module);
         GenericValue content = null;
         // Delete existing documents
-        Iterator<String> iter = null;
         List<GenericValue> contentList = null;
         IndexReader reader = null;
         try {
@@ -118,9 +112,7 @@ public class SearchWorker {
         }
 
         contentList = FastList.newInstance();
-        iter = idList.iterator();
-        while (iter.hasNext()) {
-            String id = iter.next();
+        for (String id : idList) {
             if (Debug.infoOn()) Debug.logInfo("in indexContent, id:" + id, module);
             try {
                 content = delegator.findByPrimaryKeyCache("Content", UtilMisc .toMap("contentId", id));
@@ -146,10 +138,8 @@ public class SearchWorker {
             writer = new IndexWriter(directory, new StandardAnalyzer(Version.LUCENE_30), true, IndexWriter.MaxFieldLength.UNLIMITED);
         }
 
-        Iterator<GenericValue> contentListIter = contentList.iterator();
-        while (contentListIter.hasNext()) {
-            content = contentListIter.next();
-            indexContent(dispatcher, delegator, context, content, writer);
+        for (GenericValue gv : contentList) {
+            indexContent(dispatcher, delegator, context, gv, writer);
         }
         writer.optimize();
         writer.close();

Modified: ofbiz/branches/jackrabbit20100709/applications/content/template/mime-type/image.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/content/template/mime-type/image.ftl?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/content/template/mime-type/image.ftl (original)
+++ ofbiz/branches/jackrabbit20100709/applications/content/template/mime-type/image.ftl Mon Nov 28 08:04:21 2011
@@ -16,4 +16,4 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<img src="<@o...@ofbizUrl>"/>
+<img src="<@ofbizUrl secure="${request.isSecure()?string}">stream?contentId=${contentId}</...@ofbizUrl>"/>
\ No newline at end of file

Modified: ofbiz/branches/jackrabbit20100709/applications/content/webapp/content/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/content/webapp/content/WEB-INF/controller.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/content/webapp/content/WEB-INF/controller.xml (original)
+++ ofbiz/branches/jackrabbit20100709/applications/content/webapp/content/WEB-INF/controller.xml Mon Nov 28 08:04:21 2011
@@ -1904,6 +1904,51 @@ under the License.
         <response name="error" type="view" value="WebSiteContactList"/>
     </request-map>
     
+    <!-- Web Analytics Request Mappings -->
+    <request-map uri="WebAnalytics">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="FindWebAnalyticsConfigs"/>
+        <response name="error" type="view" value="FindWebAnalyticsConfigs"/>
+    </request-map>
+    <request-map uri="WebAnalyticsConfigs">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="FindWebAnalyticsConfigs"/>
+        <response name="error" type="view" value="FindWebAnalyticsConfigs"/>
+    </request-map>
+    <request-map uri="FindWebAnalyticsConfigs">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="FindWebAnalyticsConfigs"/>
+        <response name="error" type="view" value="FindWebAnalyticsConfigs"/>
+    </request-map>
+    <request-map uri="EditWebAnalyticsConfig">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="EditWebAnalyticsConfig"/>
+        <response name="error" type="view" value="EditWebAnalyticsConfig"/>
+    </request-map>
+    <request-map uri="createWebAnalyticsConfig">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="createWebAnalyticsConfig"/>
+        <response name="success" type="request-redirect" value="FindWebAnalyticsConfigs">
+            <redirect-parameter name="webSiteId"/>
+        </response>
+        <response name="error" type="view" value="EditWebAnalyticsConfig"/>
+    </request-map>
+    <request-map uri="updateWebAnalyticsConfig">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="updateWebAnalyticsConfig"/>
+        <response name="success" type="request-redirect" value="FindWebAnalyticsConfigs">
+            <redirect-parameter name="webSiteId"/>
+        </response>
+        <response name="error" type="view" value="EditWebAnalyticsConfig"/>
+    </request-map>
+    <request-map uri="deleteWebAnalyticsConfig">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="deleteWebAnalyticsConfig"/>
+        <response name="success" type="request-redirect" value="FindWebAnalyticsConfigs">
+            <redirect-parameter name="webSiteId"/>
+        </response>
+    </request-map>
+    
     <!-- View Mappings -->
     <view-map name="main" type="screen" page="component://content/widget/CommonScreens.xml#main"/>
     <view-map name="fonts.fo" type="screenfop" page="component://content/widget/CommonScreens.xml#fonts.fo" content-type="application/pdf" encoding="none"/>
@@ -2086,5 +2131,9 @@ under the License.
     <view-map name="ContentSearchOptions" type="screen" page="component://content/widget/content/ContentScreens.xml#ContentSearchOptions"/>
     <view-map name="ContentSearchResults" type="screen" page="component://content/widget/content/ContentScreens.xml#ContentSearchResults"/>
     
+    <!-- Web Analytics View -->
+    <view-map name="FindWebAnalyticsConfigs" type="screen" page="component://content/widget/WebAnalyticsScreens.xml#FindWebAnalyticsConfigs"/>
+    <view-map name="EditWebAnalyticsConfig" type="screen" page="component://content/widget/WebAnalyticsScreens.xml#EditWebAnalyticsConfig"/>
+    
     <!-- end of view mappings -->
 </site-conf>

Modified: ofbiz/branches/jackrabbit20100709/applications/content/widget/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/content/widget/CommonScreens.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/content/widget/CommonScreens.xml (original)
+++ ofbiz/branches/jackrabbit20100709/applications/content/widget/CommonScreens.xml Mon Nov 28 08:04:21 2011
@@ -453,4 +453,44 @@ under the License.
             </widgets>
         </section>
     </screen>
+    
+    <screen name="CommonWebAnalyticsDecorator">
+        <section>
+            <actions>
+                <set field="headerItem" value="websites"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="main-decorator"  location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="pre-body">
+                        <section>
+                            <condition>
+                                <and>
+                                    <if-has-permission permission="CONTENTMGR" action="_VIEW"/>
+                                    <not><if-empty field="parameters.webSiteId"/></not>
+                                </and>
+                            </condition>
+                            <widgets>
+                                <include-menu name="website" location="component://content/widget/content/ContentMenus.xml"/>
+                            </widgets>
+                        </section>
+                    </decorator-section>
+                    <decorator-section name="body">
+                        <section>
+                            <widgets>
+                                <container style="button-bar">
+                                    <include-menu name="WebAnalyticsConfigButtonBar" location="component://content/widget/content/ContentMenus.xml"/>
+                                </container>
+                                <label style="h1" text="${uiLabelMap.CatalogWebAnalytics} ${uiLabelMap.CommonFor} : ${webSite.siteName} [${webSite.webSiteId}]  ${${extraFunctionName}}"/>
+                                <decorator-section-include name="body"/>
+                            </widgets>
+                            <fail-widgets>
+                                <label style="h3">${uiLabelMap.ContentViewPermissionError}</label>
+                            </fail-widgets>
+                        </section>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+    
 </screens>

Modified: ofbiz/branches/jackrabbit20100709/applications/content/widget/content/ContentMenus.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/content/widget/content/ContentMenus.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/content/widget/content/ContentMenus.xml (original)
+++ ofbiz/branches/jackrabbit20100709/applications/content/widget/content/ContentMenus.xml Mon Nov 28 08:04:21 2011
@@ -179,6 +179,11 @@ under the License.
                 <parameter param-name="webSiteId" from-field="parameters.webSiteId"/>
             </link>
         </menu-item>
+        <menu-item name="WebAnalytics" title="${uiLabelMap.CatalogWebAnalytics}">
+            <link target="WebAnalytics">
+                <parameter param-name="webSiteId" from-field="parameters.webSiteId"/>
+            </link>
+        </menu-item>
     </menu>
     <menu name="blog"  menu-container-style="button-bar tab-bar" default-selected-style="selected" default-menu-item-name="content" default-permission-operation="CONTENT_ADMIN"
         default-permission-entity-action="_ADMIN" default-associated-content-id="${userLogin.userLoginId}" selected-menuitem-context-field-name="tabButtonItem"
@@ -286,4 +291,17 @@ under the License.
             <link target="EditWebSite"/>
         </menu-item>
     </menu>
+    <!-- Web Analytics -->
+    <menu name="WebAnalyticsConfigButtonBar" extends="CommonButtonBarMenu" extends-resource="component://common/widget/CommonMenus.xml" selected-menuitem-context-field-name="tabButtonItem2">
+        <menu-item name="EditWebAnalyticsConfig" title="${uiLabelMap.CommonCreate}">
+            <link target="EditWebAnalyticsConfig" style="buttontext create">
+                <parameter param-name="webSiteId" from-field="parameters.webSiteId"/>
+            </link>
+        </menu-item>
+        <!--<menu-item name="WebAnalyticsTypes" title="Create ${uiLabelMap.CatalogWebAnalyticsTypes}">
+            <link target="EditWebAnalyticsType" style="buttontext create">
+                <parameter param-name="webSiteId" from-field="parameters.webSiteId"/>
+            </link>
+        </menu-item>-->
+    </menu>
 </menus>

Modified: ofbiz/branches/jackrabbit20100709/applications/humanres/config/HumanResUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/humanres/config/HumanResUiLabels.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/humanres/config/HumanResUiLabels.xml (original)
+++ ofbiz/branches/jackrabbit20100709/applications/humanres/config/HumanResUiLabels.xml Mon Nov 28 08:04:21 2011
@@ -34,7 +34,7 @@
         <value xml:lang="it">Percentuale Pagata Attualmente all'Impiegato</value>
         <value xml:lang="pt_BR">Porcentagem efetivamente paga ao empregado</value>
         <value xml:lang="th">เปอร์เซ็นต์ที่ผู้ว่าจ้างจ่ายจริง</value>
-        <value xml:lang="zh">员工支付部分百分比</value>
+        <value xml:lang="zh">实际雇主支付百分比</value>
         <value xml:lang="zh_TW">員工支付部分百分比</value>
     </property>
     <property key="FormFieldTitle_actualFromDate">
@@ -89,16 +89,19 @@
     <property key="FormFieldTitle_approvalStatus">
         <value xml:lang="en">Approver Status</value>
         <value xml:lang="fr">Etat d'approbation</value>
+        <value xml:lang="zh">批准人状态</value>
     </property>
     <property key="FormFieldTitle_approverId">
         <value xml:lang="en">Approver Party</value>
         <value xml:lang="fr">Approbateur</value>
         <value xml:lang="pt_BR">Participante responsável</value>
+        <value xml:lang="zh">批准人会员</value>
     </property>
     <property key="FormFieldTitle_approverPartyId">
         <value xml:lang="en">Approver Party</value>
         <value xml:lang="fr">Approbateur</value>
         <value xml:lang="pt_BR">Participante responsável</value>
+        <value xml:lang="zh">批准人会员</value>
     </property>
     <property key="FormFieldTitle_bankName">
         <value xml:lang="en">Bank Name</value>
@@ -190,6 +193,7 @@
         <value xml:lang="en">Leave Reason Type</value>
         <value xml:lang="fr">Raison du congé</value>
         <value xml:lang="pt_BR">Tipo da razão de licença</value>
+        <value xml:lang="zh">离职原因类型</value>
     </property>
     <property key="FormFieldTitle_emplPositionId">
         <value xml:lang="de">Anstellungspositions-ID</value>
@@ -266,6 +270,7 @@
     <property key="FormFieldTitle_examTypeEnumId">
         <value xml:lang="en">Exam Type Enum Id</value>
         <value xml:lang="fr">Type d'examen</value>
+        <value xml:lang="zh">考试类型枚举标识</value>
     </property>
     <property key="FormFieldTitle_exemptFlag">
         <value xml:lang="en">Exempt Flag</value>
@@ -280,11 +285,13 @@
         <value xml:lang="en">Experience in months</value>
         <value xml:lang="fr">Expérience en mois</value>
         <value xml:lang="it">Esperienza in mesi</value>
+        <value xml:lang="zh">按月计算的经验</value>
     </property>
     <property key="FormFieldTitle_experienceYears">
         <value xml:lang="en">Experience in years</value>
         <value xml:lang="fr">Expérience en années</value>
         <value xml:lang="it">Esperienza in anni</value>
+        <value xml:lang="zh">按年计算的经验</value>
     </property>
     <property key="FormFieldTitle_flatAmount">
         <value xml:lang="en">Flat Amount</value>
@@ -308,21 +315,25 @@
         <value xml:lang="en">Job Location</value>
         <value xml:lang="fr">Lieu de travail</value>
         <value xml:lang="it">Luogo di lavoro</value>
+        <value xml:lang="zh">工作地点</value>
     </property>
     <property key="FormFieldTitle_jobPostingEnumId">
         <value xml:lang="en">Job Posting Enum Id</value>
         <value xml:lang="fr">Référence d'offre d'emploi</value>
         <value xml:lang="it">Codice offerta di impiego</value>
+        <value xml:lang="zh">工作公告枚举标识</value>
     </property>
     <property key="FormFieldTitle_jobPostingTypeEnumId">
         <value xml:lang="en">Job Posting Type</value>
         <value xml:lang="fr">Type d'offre d'emploi</value>
         <value xml:lang="it">Tipo di offerta di impiego</value>
+        <value xml:lang="zh">工作公告类型</value>
     </property>
     <property key="FormFieldTitle_jobRequisitionId">
         <value xml:lang="en">Job Requisition Id</value>
         <value xml:lang="fr">Demande d'emploi</value>
         <value xml:lang="pt_BR">Id de requisição de emprego</value>
+        <value xml:lang="zh">工作单标识</value>
     </property>
     <property key="FormFieldTitle_justification">
         <value xml:lang="en">Justification</value>
@@ -337,6 +348,7 @@
         <value xml:lang="en">Leave Status</value>
         <value xml:lang="fr">Etat de congé</value>
         <value xml:lang="pt_BR">Estado da licença</value>
+        <value xml:lang="zh">离职状态</value>
     </property>
     <property key="FormFieldTitle_leaveTypeId">
         <value xml:lang="en">Leave Type Id</value>
@@ -624,6 +636,7 @@
     <property key="FormFieldTitle_title">
         <value xml:lang="en">Title</value>
         <value xml:lang="fr">Titre</value>
+        <value xml:lang="zh">标题</value>
     </property>
     <property key="FormFieldTitle_trainingClassTypeId">
         <value xml:lang="en">Training Class Type Id</value>
@@ -636,6 +649,7 @@
     <property key="FormFieldTitle_trainingRequestId">
         <value xml:lang="en">Training Request Id</value>
         <value xml:lang="fr">Approbation</value>
+        <value xml:lang="zh">培训请求标识</value>
     </property>
     <property key="FormFieldTitle_unemploymentClaimDate">
         <value xml:lang="en">Unemployment Claim Date</value>
@@ -675,6 +689,7 @@
     </property>
     <property key="HumanHolidayName">
         <value xml:lang="en">Holiday Name</value>
+        <value xml:lang="zh">假日名称</value>
     </property>
     <property key="HumanResAddEmplLeave">
         <value xml:lang="en">Add Employee Leave</value>
@@ -688,6 +703,7 @@
         <value xml:lang="en">Add Employee Leave Reason</value>
         <value xml:lang="fr">Ajouter un type de congé</value>
         <value xml:lang="pt_BR">Adicionar razão para licença de empregado</value>
+        <value xml:lang="zh">添加雇员离职原因</value>
     </property>
     <property key="HumanResAddEmplLeaveType">
         <value xml:lang="en">Add EmplLeave Types</value>
@@ -717,6 +733,7 @@
         <value xml:lang="en">Add Job Interview Type</value>
         <value xml:lang="fr">Ajouter un type d'entretien</value>
         <value xml:lang="pt_BR">Adicionar tipo de entrevista de emprego</value>
+        <value xml:lang="zh">添加工作面试类型</value>
     </property>
     <property key="HumanResAddPartyBenefit">
         <value xml:lang="en">Add Party Benefit</value>
@@ -861,6 +878,7 @@
         <value xml:lang="en">Approval</value>
         <value xml:lang="fr">Approbation</value>
         <value xml:lang="pt_BR">Aprovação</value>
+        <value xml:lang="zh">批准</value>
     </property>
     <property key="HumanResBudgetID">
         <value xml:lang="en">Budget ID</value>
@@ -918,6 +936,7 @@
         <value xml:lang="en">Edit Approval Status</value>
         <value xml:lang="fr">Modifier un status d'approbation</value>
         <value xml:lang="pt_BR">Editar estado de aprovação</value>
+        <value xml:lang="zh">编辑批准状态</value>
     </property>
     <property key="HumanResEditEmplLeave">
         <value xml:lang="en">Edit Empl Leave</value>
@@ -982,15 +1001,18 @@
         <value xml:lang="en">Edit Job Interview</value>
         <value xml:lang="fr">Modifier un entretien</value>        
         <value xml:lang="pt_BR">Editar entrevista de emprego</value>
+        <value xml:lang="zh">编辑工作面试</value>
     </property>
     <property key="HumanResEditJobRequisition">
         <value xml:lang="en">Edit Job Requisition</value>
         <value xml:lang="fr">Editer une demande de poste</value>
         <value xml:lang="pt_BR">Editar requisição de emprego</value>
+        <value xml:lang="zh">编辑工作单</value>
     </property>
     <property key="HumanResEditLeaveApprovalStatus">
         <value xml:lang="en">Edit Leave Approval Status</value>
         <value xml:lang="pt_BR">Editar Estado de aprovação de licença</value>
+        <value xml:lang="zh">编辑离职批准状态</value>
     </property>
     <property key="HumanResEditPartyBenefit">
         <value xml:lang="en">Party Benefits</value>
@@ -1196,6 +1218,7 @@
     <property key="HumanResEmplReasonType">
         <value xml:lang="en">EmplLeave Reason Type</value>
         <value xml:lang="pt_BR">Tipo de razão de licença de empregado</value>
+        <value xml:lang="zh">员工离职原因类型</value>
     </property>
     <property key="HumanResEmployee">
         <value xml:lang="en">an employee</value>
@@ -1210,10 +1233,12 @@
         <value xml:lang="en">Employee Leave</value>
         <value xml:lang="fr">Congés d'employés</value>
         <value xml:lang="pt_BR">Licença de empregado</value>
+        <value xml:lang="zh">员工离职</value>
     </property>
     <property key="HumanResEmployeeLeaveType">
         <value xml:lang="en">Leave Type</value>
         <value xml:lang="pt_BR">Tipo de Licença</value>
+        <value xml:lang="zh">离职类型</value>
     </property>
     <property key="HumanResEmployeePartyIdTo">
         <value xml:lang="en">Employee Party Id</value>
@@ -1255,6 +1280,7 @@
     <property key="HumanResEmployeeType">
         <value xml:lang="en">Reason Type</value>
         <value xml:lang="pt_BR">Tipo de razão</value>
+        <value xml:lang="zh">原因类型</value>
     </property>
     <property key="HumanResEmployees">
         <value xml:lang="de">Angestellte</value>
@@ -1423,35 +1449,42 @@
     <property key="HumanResIJPStatus">
         <value xml:lang="en">IJP Status</value>
         <value xml:lang="pt_BR">Estado de IJP</value>
+        <value xml:lang="zh">内部职位公开招聘状态</value>
     </property>
     <property key="HumanResInternalJobPosting">
         <value xml:lang="en">Internal Job Posting</value>
         <value xml:lang="fr">Offre d'emploi interne</value>
         <value xml:lang="pt_BR">Oferta interna de emprego</value>
+        <value xml:lang="zh">内部职位公开招聘</value>
     </property>
     <property key="HumanResJobInterview">
         <value xml:lang="en">Job Interview</value>
         <value xml:lang="fr">Entretien</value>
         <value xml:lang="pt_BR">Entrevista de emprego</value>
+        <value xml:lang="zh">工作面试</value>
     </property>
     <property key="HumanResJobInterviewType">
         <value xml:lang="en">Job Interview Type</value>
         <value xml:lang="fr">Type d'entretien</value>
         <value xml:lang="pt_BR">Tipo de entrevista de emprego</value>
+        <value xml:lang="zh">工作面试类型</value>
     </property>
     <property key="HumanResJobRequisition">
         <value xml:lang="en">Job Requisition</value>
         <value xml:lang="fr">Demande de poste</value>
         <value xml:lang="pt_BR">Petição de emprego</value>
+        <value xml:lang="zh">工作单</value>
     </property>
     <property key="HumanResLeaveApproval">
         <value xml:lang="en">Leave Approval</value>
         <value xml:lang="fr">Approbation de congés</value>
         <value xml:lang="pt_BR">Aprovação de licença</value>
+        <value xml:lang="zh">批准离职</value>
     </property>
     <property key="HumanResLeaveStatus">
         <value xml:lang="en">Leave</value>
         <value xml:lang="pt_BR">Licença</value>
+        <value xml:lang="zh">离职</value>
     </property>
     <property key="HumanResListEmployments">
         <value xml:lang="en">List Employment</value>
@@ -1779,16 +1812,19 @@
         <value xml:lang="en">New Internal Job Posting</value>
         <value xml:lang="fr">Nouvelle offre d'emploi interne</value>
         <value xml:lang="pt_BR">Nova oferta interna de emprego</value>
+        <value xml:lang="zh">新建内部职位公开招聘</value>
     </property>
     <property key="HumanResNewJobInterview">
         <value xml:lang="en">New Job Interview</value>
         <value xml:lang="fr">Nouvel entretien</value>
         <value xml:lang="pt_BR">Nova entrevista de emprego</value>
+        <value xml:lang="zh">新建工作面试</value>
     </property>
     <property key="HumanResNewJobRequisition">
         <value xml:lang="en">New Job Requisition</value>
         <value xml:lang="fr">Nouvelle demande de poste</value>
         <value xml:lang="pt_BR">Nova petição de emprego</value>
+        <value xml:lang="zh">新建工作单</value>
     </property>
     <property key="HumanResNewLeave">
         <value xml:lang="en">New Leave</value>
@@ -2012,6 +2048,7 @@
     <property key="HumanResPartySkillsAlreadyExists">
         <value xml:lang="en">Record with the selected combination already exists.Please try with Other combination.</value>
         <value xml:lang="it">Un record con la combinazione selezionata esiste già.Per favore provare con altre combinazioni.</value>
+        <value xml:lang="zh">带有所选组合的记录已经存在。请尝试其它组合。</value>
     </property>
     <property key="HumanResPayGrade">
         <value xml:lang="de">Lohnstufen</value>
@@ -2052,6 +2089,7 @@
     </property>
     <property key="HumanResPayRollHistory">
         <value xml:lang="en">PayRoll History</value>
+        <value xml:lang="zh">薪水支付历史</value>
     </property>
     <property key="HumanResPayRollPreferences">
         <value xml:lang="en">PayRoll Preferences</value>
@@ -2099,16 +2137,19 @@
     <property key="HumanResPreRequisiteSkill">
         <value xml:lang="en">Pre Requisite Skill</value>
         <value xml:lang="pt_BR">Pré-requisitos de habilidade</value>
+        <value xml:lang="zh">必备技能</value>
     </property>
     <property key="HumanResRecruitment">
         <value xml:lang="en">Recruitment</value>
         <value xml:lang="fr">Recrutement</value>
         <value xml:lang="it">Reclutamento</value>
         <value xml:lang="pt_BR">Recrutamento</value>
+        <value xml:lang="zh">招聘</value>
     </property>
     <property key="HumanResRelocation">
         <value xml:lang="en">Relocation</value>
         <value xml:lang="pt_BR">Realocação</value>
+        <value xml:lang="zh">再分配</value>
     </property>
     <property key="HumanResReportedTo">
         <value xml:lang="en">ReportedTo</value>
@@ -2308,30 +2349,35 @@
         <value xml:lang="en">Training Approvals</value>
         <value xml:lang="fr">Accords de formation</value>
         <value xml:lang="pt_BR">Aprovações de treinamento</value>
+        <value xml:lang="zh">批准培训</value>
         <value xml:lang="zh_TW">訓練核准</value>
     </property>
     <property key="HumanResTrainingClassType">
         <value xml:lang="en">Training Class Type</value>
         <value xml:lang="fr">Catégorie de formation</value>
         <value xml:lang="pt_BR">Tipo de aula de treinamento</value>
+        <value xml:lang="zh">培训课程类型</value>
         <value xml:lang="zh_TW">訓練類別型態</value>
     </property>
     <property key="HumanResTrainingStatus">
         <value xml:lang="en">Training Status</value>
         <value xml:lang="fr">Etat de la formation</value>
         <value xml:lang="pt_BR">Estado do treinamento</value>
+        <value xml:lang="zh">培训状态</value>
         <value xml:lang="zh_TW">訓練狀態</value>
     </property>
     <property key="HumanResTrainingTypes">
         <value xml:lang="en">Training Types</value>
         <value xml:lang="fr">Types de formation</value>
         <value xml:lang="pt_BR">Tipos de treinamento</value>
+        <value xml:lang="zh">培训类型</value>
         <value xml:lang="zh_TW">訓練型態</value>
     </property>
     <property key="HumanResTrainings">
         <value xml:lang="en">Training</value>
         <value xml:lang="fr">Formation</value>
         <value xml:lang="pt_BR">Treinamento</value>
+        <value xml:lang="zh">培训</value>
         <value xml:lang="zh_TW">訓練</value>
     </property>
     <property key="HumanResViewPermissionError">
@@ -2347,19 +2393,23 @@
         <value xml:lang="en">LookUp Job Interview</value>
         <value xml:lang="fr">Rechercher un entretien d'embauche</value>
         <value xml:lang="pt_BR">Procurar por entrevista de emprego</value>
+        <value xml:lang="zh">查找工作面试</value>
     </property>
     <property key="LookupJobReq">
         <value xml:lang="en">LookUp Job Requisition</value>
         <value xml:lang="fr">Rechercher une demande d'emploi</value>
         <value xml:lang="pt_BR">Procurar pro petição de emrpego</value>
+        <value xml:lang="zh">查找工作单</value>
     </property>
     <property key="PageTitleAddPublicHoliday">
         <value xml:lang="en">Add Public Holiday</value>
+        <value xml:lang="zh">添加公众假日</value>
     </property>
     <property key="PageTitleEditApprovalStatus">
         <value xml:lang="en">Edit Approval Status</value>
         <value xml:lang="fr">Modifier les approbations</value>
         <value xml:lang="pt_BR">Editar estado de aprovação</value>
+        <value xml:lang="zh">编辑批准状态</value>
     </property>
     <property key="PageTitleEditEmplPosition">
         <value xml:lang="en">Edit Empl Position</value>
@@ -2374,24 +2424,28 @@
         <value xml:lang="en">Edit Internal JobPosting</value>
         <value xml:lang="fr">Modifier une offre de travail interne</value>
         <value xml:lang="pt_BR">Editar oferta interna de emprego</value>
+        <value xml:lang="zh">编辑内部职位公开招聘</value>
         <value xml:lang="zh_TW">編輯內部工作告示</value>
     </property>
     <property key="PageTitleEditJobInterview">
         <value xml:lang="en">Edit Interview</value>
         <value xml:lang="fr">Modifier un entretien</value>
         <value xml:lang="pt_BR">Editar entrevista</value>
+        <value xml:lang="zh">编辑面试</value>
         <value xml:lang="zh_TW">編輯面試</value>
     </property>
     <property key="PageTitleEditJobInterviewType">
         <value xml:lang="en">Edit Job Interview Type</value>
         <value xml:lang="fr">Modifier les types d'entretiens</value>
         <value xml:lang="pt_BR">Editar tipo de entrevista de emprego</value>
+        <value xml:lang="zh">编辑工作面试类型</value>
         <value xml:lang="zh_TW">編輯工作面試型態</value>
     </property>
     <property key="PageTitleEditJobRequisition">
         <value xml:lang="en">Edit JobRequisition</value>
         <value xml:lang="fr">Modifier une demande de poste</value>
         <value xml:lang="pt_BR">Editar petição de emprego</value>
+        <value xml:lang="zh">编辑工作单</value>
         <value xml:lang="zh_TW">編輯工作申請</value>
     </property>
     <property key="PageTitleEditPartyReview">
@@ -2432,6 +2486,7 @@
     <property key="PageTitleEditTrainingTypes">
         <value xml:lang="en">Edit Training Types</value>
         <value xml:lang="pt_BR">Editar tipos de treinamento</value>
+        <value xml:lang="zh">编辑培训类型</value>
     </property>
     <property key="PageTitleEditValidResponsibility">
         <value xml:lang="en">Edit ValidResponsibility</value>
@@ -2446,25 +2501,30 @@
         <value xml:lang="en">Find Approvals</value>
         <value xml:lang="fr">Rechercher des approbations</value>
         <value xml:lang="pt_BR">Procurar aprovações</value>
+        <value xml:lang="zh">查找批准</value>
     </property>
     <property key="PageTitleFindInternalJobPosting">
         <value xml:lang="en">Find Internal Job Posting</value>
         <value xml:lang="fr">Rechercher des offres d'emploi internes</value>
         <value xml:lang="pt_BR">Procurar oferta interna de emprego</value>
+        <value xml:lang="zh">查找内部岗位公开招聘</value>
     </property>
     <property key="PageTitleFindJobInterviewDetails">
         <value xml:lang="en">Find Interview Details</value>
         <value xml:lang="fr">Rechercher des détails d'entretiens</value>
         <value xml:lang="pt_BR">Procurar detalhes de entrevista</value>
+        <value xml:lang="zh">查找面试详细信息</value>
     </property>
     <property key="PageTitleFindJobRequisition">
         <value xml:lang="en">Find Job Requisition</value>
         <value xml:lang="fr">Rechercher une demande de poste</value>
         <value xml:lang="pt_BR">Procurar petição de emprego</value>
+        <value xml:lang="zh">查找工作单</value>
     </property>
     <property key="PageTitleFindRelocationDetails">
         <value xml:lang="en">Find Relocation Details</value>
         <value xml:lang="pt_BR">Procurar detalhes de realocação</value>
+        <value xml:lang="zh">查找再分配详细信息</value>
     </property>
     <property key="PageTitleFindResponsibilityType">
         <value xml:lang="en">Find Responsibility Type</value>
@@ -2478,11 +2538,13 @@
         <value xml:lang="en">Find Training Approvals</value>
         <value xml:lang="fr">Rechercher des accords de formation</value>
         <value xml:lang="pt_BR">Procurar aprovações de treinamento</value>
+        <value xml:lang="zh">查找培训批准</value>
     </property>
     <property key="PageTitleFindTrainingStatus">
         <value xml:lang="en">Find Training Status</value>
         <value xml:lang="fr">Rechercher les états de formation</value>
         <value xml:lang="pt_BR">Procurar estados de treinamento</value>
+        <value xml:lang="zh">查找培训状态</value>
     </property>
     <property key="PageTitleListEmplPosition">
         <value xml:lang="en">List EmplPosition</value>
@@ -2558,9 +2620,11 @@
     </property>
     <property key="PageTitlePublicHoliday">
         <value xml:lang="en">Public Holiday</value>
+        <value xml:lang="zh">公众假日</value>
     </property>
     <property key="PageTitlePublicHolidayList">
         <value xml:lang="en">Public Holiday List</value>
+        <value xml:lang="zh">公众假日列表</value>
     </property>
     <property key="PageTitleViewEmploymentApp">
         <value xml:lang="en">View Employment App</value>

Modified: ofbiz/branches/jackrabbit20100709/applications/manufacturing/config/ManufacturingUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/manufacturing/config/ManufacturingUiLabels.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/manufacturing/config/ManufacturingUiLabels.xml (original)
+++ ofbiz/branches/jackrabbit20100709/applications/manufacturing/config/ManufacturingUiLabels.xml Mon Nov 28 08:04:21 2011
@@ -803,34 +803,42 @@
     <property key="ManufacturingBomErrorCreatingBillOfMaterialsTree">
         <value xml:lang="en">Error creating bill of materials tree: ${errorString}</value>
         <value xml:lang="it">Errore durante la creazione dell'albero dei materiali: ${errorString}</value>
+        <value xml:lang="zh">创建物料清单树时出错:${errorString}</value>
     </property>
     <property key="ManufacturingBomErrorLoadingShipmentItems">
         <value xml:lang="en">Error loading the ShipmentItems</value>
         <value xml:lang="it">Errore durante il caricamento di ShipmentItems</value>
+        <value xml:lang="zh">载入送货明细时出错</value>
     </property>
     <property key="ManufacturingBomErrorLoadingShipmentPackages">
         <value xml:lang="en">Error loading the ShipmentPackages</value>
         <value xml:lang="it">Errore durante il caricamento di ShipmentPackages</value>
+        <value xml:lang="zh">载入送货包装时出错</value>
     </property>
     <property key="ManufacturingBomErrorRunningDuplicatedAncestorSearch">
         <value xml:lang="en">Error running duplicated ancestor search: ${errorString}</value>
         <value xml:lang="it">Errore durante l'esecuzione della ricerca duplicati antenato: ${errorString}</value>
+        <value xml:lang="zh">查找重复的根时出错:${errorString}</value>
     </property>
     <property key="ManufacturingBomErrorRunningInitLowLevelCode">
         <value xml:lang="en">Error running initLowLevelCode: ${errorString}</value>
         <value xml:lang="it">Errore durante l'esecuzione di initLowLevelCode: ${errorString}</value>
+        <value xml:lang="zh">运行低层代码初始化时出错:${errorString}</value>
     </property>
     <property key="ManufacturingBomErrorRunningMaxDethAlgorithm">
         <value xml:lang="en">Error running max depth algorithm: ${errorString}</value>
         <value xml:lang="it">Errore durante l'esecuzione dell'algoritmo massima profondità: ${errorString}</value>
+        <value xml:lang="zh">运行最大深度算法时出错:${errorString}</value>
     </property>
     <property key="ManufacturingBomErrorRunningUpdateLowLevelCode">
         <value xml:lang="en">Error running updateLowLevelCode: ${errorString}</value>
         <value xml:lang="it">Errore durante l'esecuzione di updateLowLevelCode: ${errorString}</value>
+        <value xml:lang="zh">运行更新低层代码(updateLowLevelCode)时发生错误:${errorString}</value>
     </property>
     <property key="ManufacturingBomPackageAlreadyFound">
         <value xml:lang="en">Packages already found.</value>
         <value xml:lang="it">Pacchi già trovati.</value>
+        <value xml:lang="zh">已经找到包装了。</value>
     </property>
     <property key="ManufacturingBomSimulation">
         <value xml:lang="de">Stücklistensimulation</value>
@@ -1258,6 +1266,7 @@
     <property key="ManufacturingCreateDependentProductionRuns">
         <value xml:lang="en">Create Dependent Production Runs</value>
         <value xml:lang="it">Crea ordini di produzione dipendenti</value>
+        <value xml:lang="zh">创建相关生产运行</value>
     </property>
     <property key="ManufacturingCreateMachineGroup">
         <value xml:lang="de">Anlagengruppe erstellen</value>
@@ -1831,6 +1840,7 @@
         <value xml:lang="en">Generate Production Runs</value>
         <value xml:lang="it">Genera ordini di produzione</value>
         <value xml:lang="pt_BR">Gerar execuções de produção</value>
+        <value xml:lang="zh">生成生产运行</value>
     </property>
     <property key="ManufacturingImplosion">
         <value xml:lang="de">Zusammenfalten</value>
@@ -2322,74 +2332,92 @@
     <property key="ManufacturingMrpCannotCountRecords">
         <value xml:lang="en">Unable to count MrpEvent records.</value>
         <value xml:lang="it">Non è possibile contare i records da  i records da MrpEvent.</value>
+        <value xml:lang="zh">无法统计生产资源计划事件(MrpEvent)记录数。</value>
     </property>
     <property key="ManufacturingMrpCannotFindCustomTimePeriod">
         <value xml:lang="en">Problem, we can not find CustomTimePeriod, for more detail look at the log</value>
         <value xml:lang="it">Problema, non è possibile trovare CustomTimePeriod, più dettagli possono essere trovati nel log</value>
+        <value xml:lang="zh">问题:我们不能找到定制时间段(CustomTimePeriod),详见日志</value>
     </property>
     <property key="ManufacturingMrpCannotFindProductFacility">
         <value xml:lang="en">Unable to retrieve ProductFacility records.</value>
         <value xml:lang="it">Non è possibile ricavare i records da ProductFacility.</value>
+        <value xml:lang="zh">无法获取产品设施(ProductFacility)记录。</value>
     </property>
     <property key="ManufacturingMrpCannotFindSalesForecasts">
         <value xml:lang="en">Problem, we can not find SalesForecasts, for more detail look at the log</value>
         <value xml:lang="it">Problema, non è possibile trovare SalesForecasts, più dettagli possono essere trovati nel log</value>
+        <value xml:lang="zh">问题:我们不能找到销售预测(SalesForecasts),详见日志</value>
     </property>
     <property key="ManufacturingMrpCannotFindSalesForecastDetails">
         <value xml:lang="en">Problem, we can not find SalesForecastDetails, for more detail look at the log</value>
         <value xml:lang="it">Problema, non è possibile trovare SalesForecastDetails, più dettagli possono essere trovati nel log</value>
+        <value xml:lang="zh">问题:我们不能找到销售预测详细信息(SalesForecastDetails),详见日志</value>
     </property>
     <property key="ManufacturingMrpCannotFindProductForEvent">
         <value xml:lang="en">Problem, can not find the product for a event, for more detail look at the log</value>
         <value xml:lang="it">Problema, non è possibile trovare il prodotto per un'evento, più dettagli possono essere trovati nel log</value>
+        <value xml:lang="zh">问题:不能找到一个事件的产品,详见日志</value>
     </property>
     <property key="ManufacturingMrpCreateOrUpdateEvent">
         <value xml:lang="en">Error during creation or update MrpEvent, parameters: ${parameters}</value>
         <value xml:lang="it">Errore durante la creazione o aggiornamento MrpEvent, parametri: ${parameters}</value>
+        <value xml:lang="zh">创建或更新生产资源计划事件(MrpEvent)时出错,参数:${parameters}</value>
     </property>
     <property key="ManufacturingMrpErrorForBomLevel">
         <value xml:lang="en">MRP Error retieving MRP event for the bom level: ${bomLevel}. Error: ${errorString}</value>
         <value xml:lang="it">Errore MRP ricavando l'evento MRP per il livello di distinta base: ${bomLevel}. Errore: ${errorString}</value>
+        <value xml:lang="zh">获取物料清单层的生产资源计划事件时出错,物料清单层:${bomLevel},错误:${errorString}</value>
     </property>
     <property key="ManufacturingMrpErrorExplodingProduct">
         <value xml:lang="en">An error occurred exploding the product ${productId}</value>
         <value xml:lang="it">E' successo un'errore durante l'espolosizione del prodotto ${productId}</value>
+        <value xml:lang="zh">分解产品时出错:${productId}</value>
     </property>
     <property key="ManufacturingMrpErrorRunningInitMrpEvents">
         <value xml:lang="en">Error running the initMrpEvents service: ${errorString}</value>
         <value xml:lang="it">Errore durante l'esecuzione del servizio initMrpEvents: ${errorString}</value>
+        <value xml:lang="zh">运行初始化生产资源计划事件(initMrpEvents)服务时出错:${errorString}</value>
     </property>
     <property key="ManufacturingMrpEventFindError">
         <value xml:lang="en">Problem, we can not find all the items of MrpEvent, for more detail look at the log</value>
         <value xml:lang="it">Problema, non possaimo trovare tutte le righe di MrpEvent, per più dettagli controllare il log</value>
+        <value xml:lang="zh">问题:我们无法找到生产资源计划事件(MrpEvent)的全部明细,详见日志</value>
     </property>
     <property key="ManufacturingMrpEventProblemInitializing">
         <value xml:lang="en">Problem initializing the MrpEvent entity (${mrpEventTypeId})</value>
         <value xml:lang="it">Problema di inizializzazione entità MrpEvent (${mrpEventTypeId})</value>
+        <value xml:lang="zh">初始化生产资源计划事件(MrpEvent)实体(${mrpEventTypeId})时出问题了</value>
     </property>
     <property key="ManufacturingMrpEventRemoveError">
         <value xml:lang="en">Problem, we can not remove the MrpEvent items, for more detail look at the log</value>
         <value xml:lang="it">Problema, non possaimo rimuovere le righe di MrpEvent, per più dettagli controllare il log</value>
+        <value xml:lang="zh">问题:我们不能删除生产资源计划事件(MrpEvent)的明细,详见日志</value>
     </property>
     <property key="ManufacturingMrpFacilityGroupCannotBeLoad">
         <value xml:lang="en">Problem loading facility group information: ${errorString}</value>
         <value xml:lang="it">Problema durante il caricamento delle informazioni relative al gruppo stabilimento: ${errorString}</value>
+        <value xml:lang="zh">载入场所组信息时出错:${errorString}</value>
     </property>
     <property key="ManufacturingMrpFacilityGroupIsNotAssociatedToFacility">
         <value xml:lang="en">No facility associated to facilityGroupId ${facilityGroupId}</value>
         <value xml:lang="it">Nessuna stabilimento associato al gruppo stabilimento ${facilityGroupId}</value>
+        <value xml:lang="zh">没有场所关联到场所组标识(facilityGroupId)${facilityGroupId}</value>
     </property>
     <property key="ManufacturingMrpFacilityGroupIsNotValid">
         <value xml:lang="en">facilityGroupId ${facilityGroupId} is not valid</value>
         <value xml:lang="it">Gruppo stabilimento ${facilityGroupId} non è valido</value>
+        <value xml:lang="zh">场所组标识(facilityGroupId)${facilityGroupId} 无效</value>
     </property>
     <property key="ManufacturingMrpFacilityNotAvailable">
         <value xml:lang="en">facilityId and facilityGroupId cannot be both null</value>
         <value xml:lang="it">Stabilimento e gruppo stabilimento non possono essere entrambi nulli</value>
+        <value xml:lang="zh">场所标识(facilityId)和场所组标识(facilityGroupId)不能都为空(null)</value>
     </property>
     <property key="ManufacturingMrpFacilityOrManufacturingFacilityNotAvailable">
         <value xml:lang="en">facilityId and manufacturingFacilityId cannot be null</value>
         <value xml:lang="it">Stabilimento e stabilimento di produzione non possono essere nulli</value>
+        <value xml:lang="zh">场所标识(facilityId)和生产场所标识(manufacturingFacilityId)不能为空</value>
     </property>
     <property key="ManufacturingMrpInitialisation">
         <value xml:lang="de">MRP-Initialisierung</value>
@@ -2878,18 +2906,22 @@
     <property key="ManufacturingProductionRunCannotBeCancelled">
         <value xml:lang="en">Cannot cancel productionRun, not in a valid status</value>
         <value xml:lang="it">Non è possibile cancellare l'ordin di produzione, non è in uno stato valido</value>
+        <value xml:lang="zh">无法取消生产运行(productionRun),状态无效</value>
     </property>
      <property key="ManufacturingProductionRunCannotDecomposingInventoryItem">
         <value xml:lang="en">Error decomposing inventory item: inventory item with id ${inventoryItemId} not found.</value>
         <value xml:lang="it">Errore duranta la decomposizione della riga inventario: riga inventario ${inventoryItemId} non trovata.</value>
+        <value xml:lang="zh">分解库存明细时出错:没有找到标识为 ${inventoryItemId} 的库存明细</value>
     </property>
     <property key="ManufacturingProductionRunCannotDecomposingInventoryItemNoComponentsFound">
         <value xml:lang="en">Error decomposing inventory item: no components found for marketing package ${productId}.</value>
         <value xml:lang="it">Errore duranta la decomposizione della riga inventario: nessun componente trovato per il pacco di vendita ${productId}.</value>
+        <value xml:lang="zh">分解库存明细时出错:没有找到促销包 ${productId} 的组件。</value>
     </property>
     <property key="ManufacturingProductionRunCannotDecomposingInventoryItemNoMarketingPackagesFound">
         <value xml:lang="en">Error decomposing inventory item: no marketing packages found in inventory item ${inventoryItemId}.</value>
         <value xml:lang="it">Errore duranta la decomposizione della riga inventario: nessun pacco di vendita trovato nella riga di inventario ${inventoryItemId}.</value>
+        <value xml:lang="zh">分解库存明细时出错:没有在库存明细 ${inventoryItemId} 中找到促销包。</value>
     </property>
     <property key="ManufacturingProductionRunClose">
         <value xml:lang="de">Produktionsauftrag abschließen</value>
@@ -2952,6 +2984,7 @@
     <property key="ManufacturingProductionRunErrorRunningSetEstimatedDeliveryDates">
         <value xml:lang="en">Problem running the setEstimatedDeliveryDates service</value>
         <value xml:lang="it">Problema di esecuzione del servizio setEstimatedDeliveryDates</value>
+        <value xml:lang="zh">运行设置预计交货日期(setEstimatedDeliveryDates)服务时出错</value>
     </property>
     <property key="ManufacturingProductionRunCosts">
         <value xml:lang="de">Produktionsauftrags-Kosten</value>
@@ -3032,14 +3065,17 @@
     <property key="ManufacturingProductionRunForMarketingPackagesCreationError">
         <value xml:lang="en">Error creating a production run for marketing package for order ${orderId} ${orderItemSeqId}: ${errorString}</value>
         <value xml:lang="it">Errore durante la creazione dell'ordine di produzione per il pacco di vendita per l'ordine ${orderId} ${orderItemSeqId}: ${errorString}</value>
+        <value xml:lang="zh">为订单 ${orderId} ${orderItemSeqId} 的促销包创建一个生产运行时出错:${errorString}</value>
     </property>
     <property key="ManufacturingProductionRunForMarketingPackagesOrderItemNotFound">
         <value xml:lang="en">Error creating a production run for marketing package for order ${orderId} ${orderItemSeqId}: order item not found.</value>
         <value xml:lang="it">Errore durante la creazione dell'ordine di produzione per il pacco di vendita per l'ordine ${orderId} ${orderItemSeqId}: riga ordine non trovata.</value>
+        <value xml:lang="zh">为订单 ${orderId} ${orderItemSeqId} 的促销包创建一个生产运行时出错:没有找到订单明细</value>
     </property>
     <property key="ManufacturingProductionRunFromConfigurationNotYetImplemented">
         <value xml:lang="en">Operation not yet implemented</value>
         <value xml:lang="it">Operazione non è ancora implementata</value>
+        <value xml:lang="zh">还没有完成操作</value>
     </property>
     <property key="ManufacturingProductionRunFromConfigurationNotValid">
         <value xml:lang="en">Product Configuration Not Valid</value>

Modified: ofbiz/branches/jackrabbit20100709/applications/marketing/config/MarketingUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/marketing/config/MarketingUiLabels.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/marketing/config/MarketingUiLabels.xml (original)
+++ ofbiz/branches/jackrabbit20100709/applications/marketing/config/MarketingUiLabels.xml Mon Nov 28 08:04:21 2011
@@ -2583,6 +2583,9 @@
         <value xml:lang="zh">下一步</value>
         <value xml:lang="zh_TW">下一步</value>
     </property>
+    <property key="SfaNextStepDate">
+        <value xml:lang="en">Next Step Date</value>
+    </property>
     <property key="SfaNoLeadsSelectedToMerged">
         <value xml:lang="en">No leads selected to merge</value>
         <value xml:lang="fr">Aucun prospect sélectionné pour la fusion</value>

Modified: ofbiz/branches/jackrabbit20100709/applications/marketing/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/applications/marketing/entitydef/entitymodel.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/applications/marketing/entitydef/entitymodel.xml (original)
+++ ofbiz/branches/jackrabbit20100709/applications/marketing/entitydef/entitymodel.xml Mon Nov 28 08:04:21 2011
@@ -34,6 +34,7 @@ under the License.
   <!--  - org.ofbiz.marketing.contact -->
   <!--  - org.ofbiz.marketing.segment -->
   <!--  - org.ofbiz.marketing.tracking -->
+  <!--  - org.ofbiz.marketing.opportunity -->
   <!-- ========================================================= -->
 
 
@@ -155,7 +156,7 @@ under the License.
       <field name="description" type="description"></field>
       <field name="comments" type="comment"></field>
       <field name="isPublic" type="indicator"></field>
-      <field name="singleUse" type="indicator"><description>Wether members of the list should be contacted only once.</description></field>
+      <field name="singleUse" type="indicator"><description>Whether members of the list should be contacted only once.</description></field>
       <field name="ownerPartyId" type="id"></field>      
       <field name="verifyEmailFrom" type="long-varchar"></field>
       <field name="verifyEmailScreen" type="long-varchar"></field>
@@ -643,4 +644,300 @@ under the License.
             <key-map field-name="orderId"/>
         </view-link>
     </view-entity>
+  <!-- ========================================================= -->
+  <!-- org.ofbiz.marketing.opportunity -->
+  <!-- ========================================================= -->
+
+    <entity entity-name="SalesOpportunity"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Main entity of information about sales opportunities">
+        <field name="salesOpportunityId" type="id-ne"></field>
+        <field name="opportunityName" type="name"></field>
+        <field name="description" type="very-long"/>
+        <field name="nextStep" type="very-long"/>
+        <field name="nextStepDate" type="date-time"/>
+        <field name="estimatedAmount" type="currency-amount"/>
+        <field name="estimatedProbability" type="fixed-point"/>
+        <field name="currencyUomId" type="id-ne"/>
+        <field name="marketingCampaignId" type="id-ne"/>
+        <field name="dataSourceId" type="id-ne"/>
+        <field name="estimatedCloseDate" type="date-time"/>
+        <field name="opportunityStageId" type="id-ne"/>
+        <field name="typeEnumId" type="id-ne"/>
+        <field name="createdByUserLogin" type="id-vlong"/>
+        <prim-key field="salesOpportunityId"/>
+        <relation fk-name="SLSOPP_CRNCY_UOM" rel-entity-name="Uom" type="one">
+            <key-map field-name="currencyUomId" rel-field-name="uomId"/>
+        </relation>
+        <relation fk-name="SLSOPP_STAGE" rel-entity-name="SalesOpportunityStage" type="one">
+            <key-map field-name="opportunityStageId"/>
+        </relation>
+        <relation title="Type" fk-name="SLSOPP_TYP_ENUM" rel-entity-name="Enumeration" type="one">
+            <key-map field-name="typeEnumId" rel-field-name="enumId"/>
+        </relation>
+        <relation fk-name="SLSOPP_MKTGCMPG" rel-entity-name="MarketingCampaign" type="one">
+            <key-map field-name="marketingCampaignId"/>
+        </relation>
+        <relation fk-name="SLSOPP_USRLGN" rel-entity-name="UserLogin" type="one">
+            <key-map field-name="createdByUserLogin" rel-field-name="userLoginId"/>
+        </relation>
+    </entity>
+
+    <entity entity-name="SalesOpportunityHistory"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Tracks a history of sales opportunity information">
+        <field name="salesOpportunityHistoryId" type="id-ne"></field>
+        <field name="salesOpportunityId" type="id-ne"></field>
+        <field name="description" type="very-long"/>
+        <field name="nextStep" type="very-long"/>
+        <field name="estimatedAmount" type="currency-amount"/>
+        <field name="estimatedProbability" type="fixed-point"/>
+        <field name="currencyUomId" type="id-ne"/>
+        <field name="estimatedCloseDate" type="date-time"/>
+        <field name="opportunityStageId" type="id-ne"/>
+        <field name="changeNote" type="very-long">
+            <description>Used to track a reason for this change</description> <!-- maybe one day this should be a link to NoteData -->
+        </field>
+        <field name="modifiedByUserLogin" type="id-vlong"/>
+        <field name="modifiedTimestamp" type="date-time"/>
+        <prim-key field="salesOpportunityHistoryId"/>
+        <relation fk-name="SLOPHI_CRNCY_UOM" rel-entity-name="Uom" type="one">
+            <key-map field-name="currencyUomId" rel-field-name="uomId"/>
+        </relation>
+        <relation fk-name="SLOPHI_STAGE" rel-entity-name="SalesOpportunityStage" type="one">
+            <key-map field-name="opportunityStageId"/>
+        </relation>
+        <relation fk-name="SLOPHI_SLSOPP" rel-entity-name="SalesOpportunity" type="one">
+            <key-map field-name="salesOpportunityId"/>
+        </relation>
+        <relation fk-name="SLOPHI_USRLGN" rel-entity-name="UserLogin" type="one">
+            <key-map field-name="modifiedByUserLogin" rel-field-name="userLoginId"/>
+        </relation>
+    </entity>
+
+    <entity entity-name="SalesOpportunityRole"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Describes roles of different parties involved in a sales opportunity">
+        <field name="salesOpportunityId" type="id-ne"></field>
+        <field name="partyId" type="id-ne"></field>
+        <field name="roleTypeId" type="id-ne"/>
+        <!-- it may be nice to add fromDate and thruDate at some point to track changing roles if that's ever important -->
+        <prim-key field="salesOpportunityId"/>
+        <prim-key field="partyId"/>
+        <prim-key field="roleTypeId"/>
+        <relation fk-name="SLSOPPRL_SLSOPP" rel-entity-name="SalesOpportunity" type="one">
+            <key-map field-name="salesOpportunityId"/>
+        </relation>
+        <relation fk-name="SLSOPPRL_PARTY" rel-entity-name="Party" type="one">
+            <key-map field-name="partyId"/>
+        </relation>
+        <relation fk-name="SLSOPPRL_ROLETYPE" rel-entity-name="RoleType" type="one">
+            <key-map field-name="roleTypeId"/>
+        </relation>
+        <relation fk-name="SLSOPPRL_PTYROLE" rel-entity-name="PartyRole" type="one"> <!-- make sure the party actually is in the role specified -->
+            <key-map field-name="partyId"/>
+            <key-map field-name="roleTypeId"/>
+        </relation>
+    </entity>
+
+    <view-entity entity-name="SalesOpportunityAndRole" package-name="org.ofbiz.marketing.opportunity" title="SalesOpportunity And Role View Entity">
+      <member-entity entity-alias="SO" entity-name="SalesOpportunity"/>
+      <member-entity entity-alias="SR" entity-name="SalesOpportunityRole"/>
+      <alias-all entity-alias="SO"/>
+      <alias name="partyId" entity-alias="SR"/>
+      <alias name="roleTypeId" entity-alias="SR"/>
+      <view-link entity-alias="SO" rel-entity-alias="SR">
+        <key-map field-name="salesOpportunityId"/>
+      </view-link>
+    </view-entity>
+
+    <entity entity-name="SalesOpportunityStage"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Describes stages of a sales opportunity with associated probability factors.">
+        <field name="opportunityStageId" type="id-ne"></field>
+        <field name="description" type="description"/>
+        <field name="defaultProbability" type="fixed-point"/>
+        <field name="sequenceNum" type="numeric"/>
+        <prim-key field="opportunityStageId"/>
+    </entity>
+
+    <entity entity-name="SalesOpportunityWorkEffort"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Relates sales opportunities to their work efforts.">
+        <field name="salesOpportunityId" type="id-ne"></field>
+        <field name="workEffortId" type="id-ne"></field>
+        <prim-key field="salesOpportunityId"/>
+        <prim-key field="workEffortId"/>
+        <relation type="one" fk-name="SOPPWEFF_SOPP" rel-entity-name="SalesOpportunity">
+            <key-map field-name="salesOpportunityId"/>
+        </relation>
+        <relation type="one" fk-name="SOPPWEFF_WEFF" rel-entity-name="WorkEffort">
+            <key-map field-name="workEffortId"/>
+        </relation>
+    </entity>
+
+    <entity entity-name="SalesOpportunityQuote"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Relates sales opportunities to their quotes.">
+        <field name="salesOpportunityId" type="id-ne"></field>
+        <field name="quoteId" type="id-ne"></field>
+        <prim-key field="salesOpportunityId"/>
+        <prim-key field="quoteId"/>
+        <relation type="one" fk-name="SOPPQTE_SOPP" rel-entity-name="SalesOpportunity">
+            <key-map field-name="salesOpportunityId"/>
+        </relation>
+        <relation type="one" fk-name="SOPPQTE_QTE" rel-entity-name="Quote">
+            <key-map field-name="quoteId"/>
+        </relation>
+    </entity>
+
+    <entity entity-name="SalesForecast"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Stores sales forecast data for sales opportunities.">
+        <field name="salesForecastId" type="id-ne"></field>
+        <field name="parentSalesForecastId" type="id"></field>
+        <field name="organizationPartyId" type="id"></field>
+        <field name="internalPartyId" type="id"></field>
+        <field name="customTimePeriodId" type="id"></field>
+        <field name="currencyUomId" type="id"></field>
+        <field name="quotaAmount" type="currency-amount"></field>
+        <field name="forecastAmount" type="currency-amount"></field>
+        <field name="bestCaseAmount" type="currency-amount"></field>
+        <field name="closedAmount" type="currency-amount"/>
+        <field name="percentOfQuotaForecast" type="fixed-point"/>
+        <field name="percentOfQuotaClosed" type="fixed-point"/>
+        <field name="pipelineAmount" type="currency-amount"></field>
+        <field name="createdByUserLoginId" type="id-vlong"></field>
+        <field name="modifiedByUserLoginId" type="id-vlong"></field>
+        <prim-key field="salesForecastId"/>
+        <relation type="one" fk-name="SALES4C_PARENT" title="Parent" rel-entity-name="SalesForecast">
+            <key-map field-name="parentSalesForecastId" rel-field-name="salesForecastId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4C_ORG_PARTY" title="Organization" rel-entity-name="Party">
+            <key-map field-name="organizationPartyId" rel-field-name="partyId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4C_INT_PARTY" title="Internal" rel-entity-name="Party">
+            <key-map field-name="internalPartyId" rel-field-name="partyId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4C_TIME_PER" rel-entity-name="CustomTimePeriod">
+            <key-map field-name="customTimePeriodId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4C_CUR_UOM" rel-entity-name="Uom">
+            <key-map field-name="currencyUomId" rel-field-name="uomId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4C_CRT_USER" title="CreatedBy" rel-entity-name="UserLogin">
+            <key-map field-name="createdByUserLoginId" rel-field-name="userLoginId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4C_MOD_USER" title="ModifiedBy" rel-entity-name="UserLogin">
+            <key-map field-name="modifiedByUserLoginId" rel-field-name="userLoginId"/>
+        </relation>
+    </entity>
+
+    <entity entity-name="SalesForecastDetail"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Stores Details of Resourses of Sales Forecast for simulation of MRP">
+        <field name="salesForecastId" type="id-ne"/>
+        <field name="salesForecastDetailId" type="id-ne"/>
+        <field name="amount" type="currency-amount"/>
+        <field name="quantityUomId" type="id"/>
+        <field name="quantity" type="fixed-point"/>
+        <field name="productId" type="id"/>
+        <field name="productCategoryId" type="id"/>
+        <prim-key field="salesForecastId"/>
+        <prim-key field="salesForecastDetailId"/>
+        <relation type="one" fk-name="SALES4CDTL_SALES4C" rel-entity-name="SalesForecast">
+            <key-map field-name="salesForecastId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4CDTL_QTY_UOM" title="Quantity" rel-entity-name="Uom">
+            <key-map field-name="quantityUomId" rel-field-name="uomId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4CDTL_PROD" rel-entity-name="Product">
+            <key-map field-name="productId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4CDTL_PCTGRY" rel-entity-name="ProductCategory">
+            <key-map field-name="productCategoryId"/>
+        </relation>
+    </entity>
+
+    <entity entity-name="SalesForecastHistory"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Keeps a record of changes to a sales forecast.">
+        <field name="salesForecastHistoryId" type="id-ne"></field>
+        <field name="salesForecastId" type="id-ne"></field>
+        <field name="parentSalesForecastId" type="id"></field>
+        <field name="organizationPartyId" type="id"></field>
+        <field name="internalPartyId" type="id"></field>
+        <field name="customTimePeriodId" type="id"></field>
+        <field name="currencyUomId" type="id"></field>
+        <field name="quotaAmount" type="currency-amount"></field>
+        <field name="forecastAmount" type="currency-amount"></field>
+        <field name="bestCaseAmount" type="currency-amount"></field>
+        <field name="closedAmount" type="currency-amount"/>
+        <field name="percentOfQuotaForecast" type="fixed-point"/>
+        <field name="percentOfQuotaClosed" type="fixed-point"/>
+        <field name="changeNote" type="very-long">
+            <description>Used to track a reason for this change</description> <!-- maybe one day this should be a link to NoteData -->
+        </field>
+        <field name="modifiedByUserLoginId" type="id-vlong"></field>
+        <field name="modifiedTimestamp" type="date-time"/>
+        <prim-key field="salesForecastHistoryId"/>
+        <relation type="one" fk-name="SALES4CH_SALES4C" rel-entity-name="SalesForecast">
+            <key-map field-name="salesForecastId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4CH_ORG_PARTY" title="Organization" rel-entity-name="Party">
+            <key-map field-name="organizationPartyId" rel-field-name="partyId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4CH_INT_PARTY" title="Internal" rel-entity-name="Party">
+            <key-map field-name="internalPartyId" rel-field-name="partyId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4CH_TIME_PER" rel-entity-name="CustomTimePeriod">
+            <key-map field-name="customTimePeriodId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4CH_CUR_UOM" rel-entity-name="Uom">
+            <key-map field-name="currencyUomId" rel-field-name="uomId"/>
+        </relation>
+        <relation type="one" fk-name="SALES4CH_MOD_USER" title="ModifiedBy" rel-entity-name="UserLogin">
+            <key-map field-name="modifiedByUserLoginId" rel-field-name="userLoginId"/>
+        </relation>
+    </entity>
+    <entity entity-name="SalesOpportunityCompetitor"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Sales opportunity competitors record">
+        <field name="salesOpportunityId" type="id-ne"></field>
+        <field name="competitorPartyId" type="id-ne"></field>
+        <field name="positionEnumId" type="id-ne"></field>
+        <field name="strengths" type="very-long"></field>
+        <field name="weaknesses" type="very-long"></field>
+        <prim-key field="salesOpportunityId"/>
+        <prim-key field="competitorPartyId"/>
+        <relation type="one" fk-name="SOPPCOMP_SOPP" rel-entity-name="SalesOpportunity">
+            <key-map field-name="salesOpportunityId"/>
+        </relation>
+    </entity>
+    <entity entity-name="SalesOpportunityTrckCode"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="Sales opportunity traking code">
+        <field name="salesOpportunityId" type="id-ne"></field>
+        <field name="trackingCodeId" type="id-ne"></field>
+        <field name="receivedDate" type="date-time"></field>
+        <prim-key field="salesOpportunityId"/>
+        <prim-key field="trackingCodeId"/>
+        <relation type="one" fk-name="SOPPTRKCD_SOPP" rel-entity-name="SalesOpportunity">
+            <key-map field-name="salesOpportunityId"/>
+        </relation>
+    </entity>
+    <view-entity entity-name="SalesForecastAndCustomTimePeriod"
+            package-name="org.ofbiz.marketing.opportunity"
+            title="View for selecting the forecast with its time period.">
+      <member-entity entity-alias="SF" entity-name="SalesForecast"/>
+      <member-entity entity-alias="CTP" entity-name="CustomTimePeriod"/>
+      <alias-all entity-alias="SF"/>
+      <alias-all entity-alias="CTP">
+          <exclude field="organizationPartyId"/>
+      </alias-all>
+      <view-link entity-alias="SF" rel-entity-alias="CTP">
+        <key-map field-name="customTimePeriodId"/>
+      </view-link>
+    </view-entity>
+    
 </entitymodel>