You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2014/09/01 09:29:24 UTC
svn commit: r1621696 [10/12] - in
/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23: ./
applications/order/webapp/ordermgr/WEB-INF/actions/return/
applications/party/webapp/partymgr/party/contactmechtemplates/
applications/party/widget/partymgr...
Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/stats/ServerHitBin.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/stats/ServerHitBin.java?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/stats/ServerHitBin.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/stats/ServerHitBin.java Mon Sep 1 07:29:23 2014
@@ -19,14 +19,13 @@
package org.ofbiz.webapp.stats;
import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.Deque;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedDeque;
+import java.util.concurrent.ConcurrentMap;
import javax.servlet.http.HttpServletRequest;
-import javolution.util.FastList;
-import javolution.util.FastMap;
-
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilHttp;
import org.ofbiz.base.util.UtilMisc;
@@ -58,18 +57,18 @@ public class ServerHitBin {
private static final String[] typeIds = {"", "REQUEST", "EVENT", "VIEW", "ENTITY", "SERVICE"};
// these Maps contain Lists of ServerHitBin objects by id, the most recent is first in the list
- public static Map<String, List<ServerHitBin>> requestHistory = FastMap.newInstance();
- public static Map<String, List<ServerHitBin>> eventHistory = FastMap.newInstance();
- public static Map<String, List<ServerHitBin>> viewHistory = FastMap.newInstance();
- public static Map<String, List<ServerHitBin>> entityHistory = FastMap.newInstance();
- public static Map<String, List<ServerHitBin>> serviceHistory = FastMap.newInstance();
+ public static final ConcurrentMap<String, Deque<ServerHitBin>> requestHistory = new ConcurrentHashMap<String, Deque<ServerHitBin>>();
+ public static final ConcurrentMap<String, Deque<ServerHitBin>> eventHistory = new ConcurrentHashMap<String, Deque<ServerHitBin>>();
+ public static final ConcurrentMap<String, Deque<ServerHitBin>> viewHistory = new ConcurrentHashMap<String, Deque<ServerHitBin>>();
+ public static final ConcurrentMap<String, Deque<ServerHitBin>> entityHistory = new ConcurrentHashMap<String, Deque<ServerHitBin>>();
+ public static final ConcurrentMap<String, Deque<ServerHitBin>> serviceHistory = new ConcurrentHashMap<String, Deque<ServerHitBin>>();
// these Maps contain ServerHitBin objects by id
- public static Map<String, ServerHitBin> requestSinceStarted = FastMap.newInstance();
- public static Map<String, ServerHitBin> eventSinceStarted = FastMap.newInstance();
- public static Map<String, ServerHitBin> viewSinceStarted = FastMap.newInstance();
- public static Map<String, ServerHitBin> entitySinceStarted = FastMap.newInstance();
- public static Map<String, ServerHitBin> serviceSinceStarted = FastMap.newInstance();
+ public static final ConcurrentMap<String, ServerHitBin> requestSinceStarted = new ConcurrentHashMap<String, ServerHitBin>();
+ public static final ConcurrentMap<String, ServerHitBin> eventSinceStarted = new ConcurrentHashMap<String, ServerHitBin>();
+ public static final ConcurrentMap<String, ServerHitBin> viewSinceStarted = new ConcurrentHashMap<String, ServerHitBin>();
+ public static final ConcurrentMap<String, ServerHitBin> entitySinceStarted = new ConcurrentHashMap<String, ServerHitBin>();
+ public static final ConcurrentMap<String, ServerHitBin> serviceSinceStarted = new ConcurrentHashMap<String, ServerHitBin>();
public static void countRequest(String id, HttpServletRequest request, long startTime, long runningTime, GenericValue userLogin) {
countHit(id, REQUEST, request, startTime, runningTime, userLogin);
@@ -105,6 +104,35 @@ public class ServerHitBin {
}
}
+ private static long getNewBinLength() {
+ long binLength = (long) UtilProperties.getPropertyNumber("serverstats", "stats.bin.length.millis");
+
+ // if no or 0 binLength specified, set to 30 minutes
+ if (binLength <= 0) binLength = 1800000;
+ // if binLength is more than an hour, set it to one hour
+ if (binLength > 3600000) binLength = 3600000;
+ return binLength;
+ }
+
+ private static long getEvenStartingTime(long binLength) {
+ // binLengths should be a divisable evenly into 1 hour
+ long curTime = System.currentTimeMillis();
+
+ // find the first previous millis that are even on the hour
+ Calendar cal = Calendar.getInstance();
+
+ cal.setTime(new Date(curTime));
+ cal.set(Calendar.MINUTE, 0);
+ cal.set(Calendar.SECOND, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+
+ while (cal.getTime().getTime() < (curTime - binLength)) {
+ cal.add(Calendar.MILLISECOND, (int) binLength);
+ }
+
+ return cal.getTime().getTime();
+ }
+
private static void countHit(String baseId, int type, HttpServletRequest request, long startTime, long runningTime, GenericValue userLogin, boolean isOriginal) {
Delegator delegator = (Delegator) request.getAttribute("delegator");
if (delegator == null) {
@@ -118,7 +146,7 @@ public class ServerHitBin {
String id = makeIdTenantAware(baseId, delegator);
ServerHitBin bin = null;
- List<ServerHitBin> binList = null;
+ Deque<ServerHitBin> binList = null;
switch (type) {
case REQUEST:
@@ -143,76 +171,77 @@ public class ServerHitBin {
}
if (binList == null) {
- synchronized (ServerHitBin.class) {
- switch (type) {
- case REQUEST:
- binList = requestHistory.get(id);
- break;
-
- case EVENT:
- binList = eventHistory.get(id);
- break;
-
- case VIEW:
- binList = viewHistory.get(id);
- break;
-
- case ENTITY:
- binList = entityHistory.get(id);
- break;
-
- case SERVICE:
- binList = serviceHistory.get(id);
- break;
- }
- if (binList == null) {
- binList = FastList.newInstance();
- switch (type) {
- case REQUEST:
- requestHistory.put(id, binList);
- break;
-
- case EVENT:
- eventHistory.put(id, binList);
- break;
-
- case VIEW:
- viewHistory.put(id, binList);
- break;
-
- case ENTITY:
- entityHistory.put(id, binList);
- break;
-
- case SERVICE:
- serviceHistory.put(id, binList);
- break;
- }
- }
+ binList = new ConcurrentLinkedDeque<ServerHitBin>();
+ Deque<ServerHitBin> listFromMap = null;
+ switch (type) {
+ case REQUEST:
+ listFromMap = requestHistory.putIfAbsent(id, binList);
+ break;
+
+ case EVENT:
+ listFromMap = eventHistory.putIfAbsent(id, binList);
+ break;
+
+ case VIEW:
+ listFromMap = viewHistory.putIfAbsent(id, binList);
+ break;
+
+ case ENTITY:
+ listFromMap = entityHistory.putIfAbsent(id, binList);
+ break;
+
+ case SERVICE:
+ listFromMap = serviceHistory.putIfAbsent(id, binList);
+ break;
}
+ binList = listFromMap != null ? listFromMap : binList;
}
- if (binList.size() > 0) {
- bin = binList.get(0);
- }
- if (bin == null) {
- synchronized (ServerHitBin.class) {
- if (binList.size() > 0) {
- bin = binList.get(0);
- }
- if (bin == null) {
- bin = new ServerHitBin(id, type, true, delegator);
- if (binList.size() > 0) {
- binList.add(0, bin);
- } else {
- binList.add(bin);
+ do {
+ bin = binList.peek();
+ if (bin == null) {
+ binList.addFirst(new ServerHitBin(id, type, true, delegator));
+ }
+ } while (bin == null);
+
+ long toTime = startTime + runningTime;
+ // advance the bin
+ // first check to see if the bin has expired, if so save and recycle it
+ while (bin.limitLength && toTime > bin.endTime) {
+ // the first in the list will be this object, remove and copy it,
+ // put the copy at the first of the list, then put this object back on
+ if (bin.getNumberHits() > 0) {
+ // persist each bin when time ends if option turned on
+ if (UtilProperties.propertyValueEqualsIgnoreCase("serverstats", "stats.persist." + ServerHitBin.typeIds[type] + ".bin", "true")) {
+ GenericValue serverHitBin = delegator.makeValue("ServerHitBin");
+ serverHitBin.set("contentId", bin.id);
+ serverHitBin.set("hitTypeId", ServerHitBin.typeIds[bin.type]);
+ serverHitBin.set("binStartDateTime", new java.sql.Timestamp(bin.startTime));
+ serverHitBin.set("binEndDateTime", new java.sql.Timestamp(bin.endTime));
+ serverHitBin.set("numberHits", Long.valueOf(bin.getNumberHits()));
+ serverHitBin.set("totalTimeMillis", Long.valueOf(bin.getTotalRunningTime()));
+ serverHitBin.set("minTimeMillis", Long.valueOf(bin.getMinTime()));
+ serverHitBin.set("maxTimeMillis", Long.valueOf(bin.getMaxTime()));
+ // get localhost ip address and hostname to store
+ if (VisitHandler.address != null) {
+ serverHitBin.set("serverIpAddress", VisitHandler.address.getHostAddress());
+ serverHitBin.set("serverHostName", VisitHandler.address.getHostName());
+ }
+ try {
+ delegator.createSetNextSeqId(serverHitBin);
+ } catch (GenericEntityException e) {
+ Debug.logError(e, "Could not save ServerHitBin:", module);
}
}
+ } else {
+ binList.pollFirst();
}
+ bin = new ServerHitBin(bin, bin.endTime + 1);
+ binList.addFirst(bin);
}
- bin.addHit(startTime, runningTime);
- if (isOriginal && !id.startsWith("GLOBAL")) {
+ bin.addHit(runningTime);
+ if (isOriginal) {
try {
bin.saveHit(request, startTime, runningTime, userLogin);
} catch (GenericEntityException e) {
@@ -221,25 +250,26 @@ public class ServerHitBin {
}
// count since start global and per id hits
- if (!id.startsWith("GLOBAL"))
- countHitSinceStart(id, type, startTime, runningTime, isOriginal, delegator);
+ if (!id.startsWith("GLOBAL")) {
+ countHitSinceStart(id, type, runningTime, delegator);
+ if (isOriginal) {
+ countHitSinceStart(makeIdTenantAware("GLOBAL", delegator), type, runningTime, delegator);
+ }
+ }
// also count hits up the hierarchy if the id contains a '.'
if (id.indexOf('.') > 0) {
countHit(id.substring(0, id.lastIndexOf('.')), type, request, startTime, runningTime, userLogin, false);
}
- if (isOriginal && !id.startsWith("GLOBAL"))
- countHit("GLOBAL", type, request, startTime, runningTime, userLogin, true);
+ if (isOriginal) {
+ countHit("GLOBAL", type, request, startTime, runningTime, userLogin, false);
+ }
}
- private static void countHitSinceStart(String baseId, int type, long startTime, long runningTime, boolean isOriginal, Delegator delegator) {
-
- String id = makeIdTenantAware(baseId, delegator);
-
+ private static void countHitSinceStart(String id, int type, long runningTime, Delegator delegator) {
ServerHitBin bin = null;
- // save in global, and try to get bin by id
switch (type) {
case REQUEST:
bin = requestSinceStarted.get(id);
@@ -263,60 +293,32 @@ public class ServerHitBin {
}
if (bin == null) {
- synchronized (ServerHitBin.class) {
- switch (type) {
- case REQUEST:
- bin = requestSinceStarted.get(id);
- break;
-
- case EVENT:
- bin = eventSinceStarted.get(id);
- break;
-
- case VIEW:
- bin = viewSinceStarted.get(id);
- break;
-
- case ENTITY:
- bin = entitySinceStarted.get(id);
- break;
-
- case SERVICE:
- bin = serviceSinceStarted.get(id);
- break;
- }
+ bin = new ServerHitBin(id, type, false, delegator);
+ ServerHitBin binFromMap = null;
+ switch (type) {
+ case REQUEST:
+ binFromMap = requestSinceStarted.putIfAbsent(id, bin);
+ break;
- if (bin == null) {
- bin = new ServerHitBin(id, type, false, delegator);
- switch (type) {
- case REQUEST:
- requestSinceStarted.put(id, bin);
- break;
-
- case EVENT:
- eventSinceStarted.put(id, bin);
- break;
-
- case VIEW:
- viewSinceStarted.put(id, bin);
- break;
-
- case ENTITY:
- entitySinceStarted.put(id, bin);
- break;
-
- case SERVICE:
- serviceSinceStarted.put(id, bin);
- break;
- }
- }
- }
- }
+ case EVENT:
+ binFromMap = eventSinceStarted.putIfAbsent(id, bin);
+ break;
- bin.addHit(startTime, runningTime);
+ case VIEW:
+ binFromMap = viewSinceStarted.putIfAbsent(id, bin);
+ break;
+
+ case ENTITY:
+ binFromMap = entitySinceStarted.putIfAbsent(id, bin);
+ break;
- if (isOriginal)
- countHitSinceStart("GLOBAL", type, startTime, runningTime, false, delegator);
+ case SERVICE:
+ binFromMap = serviceSinceStarted.putIfAbsent(id, bin);
+ break;
+ }
+ bin = binFromMap != null ? binFromMap : bin;
+ }
+ bin.addHit(runningTime);
}
private final Delegator delegator;
@@ -324,8 +326,9 @@ public class ServerHitBin {
private final int type;
private final boolean limitLength;
private final long binLength;
- private long startTime;
- private long endTime;
+ private final long startTime;
+ private final long endTime;
+
private long numberHits;
private long totalRunningTime;
private long minTime;
@@ -337,21 +340,37 @@ public class ServerHitBin {
this.limitLength = limitLength;
this.delegator = delegator;
this.binLength = getNewBinLength();
- reset(getEvenStartingTime());
+ this.startTime = getEvenStartingTime(this.binLength);
+ if (this.limitLength) {
+ // subtract 1 millisecond to keep bin starting times even
+ this.endTime = this.startTime + this.binLength - 1;
+ } else {
+ this.endTime = 0;
+ }
+ this.numberHits = 0;
+ this.totalRunningTime = 0;
+ this.minTime = Long.MAX_VALUE;
+ this.maxTime = 0;
}
- private ServerHitBin(ServerHitBin oldBin) {
+ private ServerHitBin(ServerHitBin oldBin, long startTime) {
this.id = oldBin.id;
this.type = oldBin.type;
this.limitLength = oldBin.limitLength;
this.delegator = oldBin.delegator;
this.binLength = oldBin.binLength;
- this.startTime = oldBin.startTime;
- this.endTime = oldBin.endTime;
- this.numberHits = oldBin.numberHits;
- this.totalRunningTime = oldBin.totalRunningTime;
- this.minTime = oldBin.minTime;
- this.maxTime = oldBin.maxTime;
+
+ this.startTime = startTime;
+ if (limitLength) {
+ // subtract 1 millisecond to keep bin starting times even
+ this.endTime = this.startTime + this.binLength - 1;
+ } else {
+ this.endTime = 0;
+ }
+ this.numberHits = 0;
+ this.totalRunningTime = 0;
+ this.minTime = Long.MAX_VALUE;
+ this.maxTime = 0;
}
public Delegator getDelegator() {
@@ -397,77 +416,44 @@ public class ServerHitBin {
return (this.getBinLength()) / 60000.0;
}
- public long getNumberHits() {
+ public synchronized long getNumberHits() {
return this.numberHits;
}
- public double getMinTimeSeconds() {
- return (this.minTime) / 1000.0;
+ public synchronized long getMinTime() {
+ return this.minTime;
}
- public double getMaxTimeSeconds() {
- return (this.maxTime) / 1000.0;
+ public synchronized long getMaxTime() {
+ return this.maxTime;
}
- public double getAvgTime() {
- return ((double) this.totalRunningTime) / ((double) this.numberHits);
+ public synchronized long getTotalRunningTime() {
+ return this.totalRunningTime;
}
- public double getAvgTimeSeconds() {
- return this.getAvgTime() / 1000.0;
+ public double getMinTimeSeconds() {
+ return (this.getMinTime()) / 1000.0;
}
- /** return the hits per minute using the entire length of the bin as returned by getBinLengthMinutes() */
- public double getHitsPerMinute() {
- return (this.numberHits) / this.getBinLengthMinutes();
+ public double getMaxTimeSeconds() {
+ return (this.getMaxTime()) / 1000.0;
}
- private long getNewBinLength() {
- long binLength = (long) UtilProperties.getPropertyNumber("serverstats", "stats.bin.length.millis");
-
- // if no or 0 binLength specified, set to 30 minutes
- if (binLength <= 0) binLength = 1800000;
- // if binLength is more than an hour, set it to one hour
- if (binLength > 3600000) binLength = 3600000;
- return binLength;
+ public synchronized double getAvgTime() {
+ return ((double) this.getTotalRunningTime()) / ((double) this.getNumberHits());
}
- private long getEvenStartingTime() {
- // binLengths should be a divisable evenly into 1 hour
- long curTime = System.currentTimeMillis();
-
- // find the first previous millis that are even on the hour
- Calendar cal = Calendar.getInstance();
-
- cal.setTime(new Date(curTime));
- cal.set(Calendar.MINUTE, 0);
- cal.set(Calendar.SECOND, 0);
- cal.set(Calendar.MILLISECOND, 0);
-
- while (cal.getTime().getTime() < (curTime - this.binLength)) {
- cal.add(Calendar.MILLISECOND, (int) this.binLength);
- }
-
- return cal.getTime().getTime();
+ public double getAvgTimeSeconds() {
+ return this.getAvgTime() / 1000.0;
}
- private void reset(long startTime) {
- this.startTime = startTime;
- if (limitLength) {
- // subtract 1 millisecond to keep bin starting times even
- this.endTime = startTime + this.binLength - 1;
- } else {
- this.endTime = 0;
- }
- this.numberHits = 0;
- this.totalRunningTime = 0;
- this.minTime = Long.MAX_VALUE;
- this.maxTime = 0;
+ /** return the hits per minute using the entire length of the bin as returned by getBinLengthMinutes() */
+ public double getHitsPerMinute() {
+ return this.getNumberHits() / this.getBinLengthMinutes();
}
- private synchronized void addHit(long startTime, long runningTime) {
- advanceBin(startTime + runningTime);
-
+ private synchronized void addHit(long runningTime) {
this.numberHits++;
this.totalRunningTime += runningTime;
if (runningTime < this.minTime)
@@ -476,67 +462,6 @@ public class ServerHitBin {
this.maxTime = runningTime;
}
- private synchronized void advanceBin(long toTime) {
- // first check to see if this bin has expired, if so save and recycle it
- while (limitLength && toTime > this.endTime) {
- List<ServerHitBin> binList = null;
-
- switch (type) {
- case REQUEST:
- binList = requestHistory.get(id);
- break;
-
- case EVENT:
- binList = eventHistory.get(id);
- break;
-
- case VIEW:
- binList = viewHistory.get(id);
- break;
-
- case ENTITY:
- binList = entityHistory.get(id);
- break;
-
- case SERVICE:
- binList = serviceHistory.get(id);
- break;
- }
-
- // the first in the list will be this object, remove and copy it,
- // put the copy at the first of the list, then put this object back on
- binList.remove(0);
- if (this.numberHits > 0) {
- binList.add(0, new ServerHitBin(this));
-
- // persist each bin when time ends if option turned on
- if (UtilProperties.propertyValueEqualsIgnoreCase("serverstats", "stats.persist." + ServerHitBin.typeIds[type] + ".bin", "true")) {
- GenericValue serverHitBin = delegator.makeValue("ServerHitBin");
- serverHitBin.set("contentId", this.id);
- serverHitBin.set("hitTypeId", ServerHitBin.typeIds[this.type]);
- serverHitBin.set("binStartDateTime", new java.sql.Timestamp(this.startTime));
- serverHitBin.set("binEndDateTime", new java.sql.Timestamp(this.endTime));
- serverHitBin.set("numberHits", Long.valueOf(this.numberHits));
- serverHitBin.set("totalTimeMillis", Long.valueOf(this.totalRunningTime));
- serverHitBin.set("minTimeMillis", Long.valueOf(this.minTime));
- serverHitBin.set("maxTimeMillis", Long.valueOf(this.maxTime));
- // get localhost ip address and hostname to store
- if (VisitHandler.address != null) {
- serverHitBin.set("serverIpAddress", VisitHandler.address.getHostAddress());
- serverHitBin.set("serverHostName", VisitHandler.address.getHostName());
- }
- try {
- delegator.createSetNextSeqId(serverHitBin);
- } catch (GenericEntityException e) {
- Debug.logError(e, "Could not save ServerHitBin:", module);
- }
- }
- }
- this.reset(this.endTime + 1);
- binList.add(0, this);
- }
- }
-
private void saveHit(HttpServletRequest request, long startTime, long runningTime, GenericValue userLogin) throws GenericEntityException {
// persist record of hit in ServerHit entity if option turned on
if (UtilProperties.propertyValueEqualsIgnoreCase("serverstats", "stats.persist." + ServerHitBin.typeIds[type] + ".hit", "true")) {
@@ -572,26 +497,6 @@ public class ServerHitBin {
Debug.logInfo("Visit delegatorName=" + visit.getDelegator().getDelegatorName() + ", ServerHitBin delegatorName=" + this.delegator.getDelegatorName(), module);
- /* this isn't needed, the problem was better solved elsewhere, and without adding another query; leaving it here because it might be useful for something in the future
- * else {
- try {
- // see if the error was caused by a bad visitId, and if so create a new visit and try again
- GenericValue freshVisit = delegator.findOne("Visit", false, "visitId", visitId);
- if (freshVisit == null) {
- Debug.logInfo("Visit with ID [" + visitId + "] does not exist in the database, removing from session and making a new one", module);
- // something happened, have a bad visit in the session so remove it and try again
- request.getSession().removeAttribute("visit");
- visitId = VisitHandler.getVisitId(request.getSession());
- Debug.logInfo("After making new Visit the ID is [" + visitId + "]", module);
- }
- } catch (GenericEntityException e) {
- // this is an error on the retry and not part of the main flow, so log it and let it go
- Debug.logWarning(e, "Error retrying ServerHit: " + e.toString(), module);
- }
-
- }
- */
-
GenericValue serverHit = delegator.makeValue("ServerHit");
serverHit.set("visitId", visitId);
Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/config/WebtoolsErrorUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/config/WebtoolsErrorUiLabels.xml?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/config/WebtoolsErrorUiLabels.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/config/WebtoolsErrorUiLabels.xml Mon Sep 1 07:29:23 2014
@@ -74,7 +74,7 @@
<value xml:lang="ro">Creatie ${entityName} falita pentru entitatea</value>
<value xml:lang="th">à¸à¸²à¸£à¸ªà¸£à¹à¸²à¸à¸à¸à¸${entityName} ลà¹à¸¡à¹à¸«à¸¥à¸§à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸à¸à¸´à¸à¸µ</value>
<value xml:lang="zh">æ æ³ä¸ºå®ä½å建${entityName}</value>
- <value xml:lang="zh_TW">ç¡æ³çºå¯¦é«åµå»º${entityName}</value>
+ <value xml:lang="zh_TW">ç¡æ³çºå¯¦é«æ°å»º${entityName}</value>
</property>
<property key="genericWebEvent.delegator_object_not_found">
<value xml:lang="en">The delegator object was not found in the request, please check the control servlet init</value>
@@ -258,7 +258,7 @@
<value xml:lang="ro">Toate cache-urile au fost curatate</value>
<value xml:lang="th">à¹à¸à¸¥à¸µà¸¢à¸£à¹à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³à¸à¸±à¹à¸à¸«à¸¡à¸</value>
<value xml:lang="zh">å·²æ¸
é¤å
¨é¨ç¼å</value>
- <value xml:lang="zh_TW">å·²æ¸
é¤å
¨é¨ç·©å</value>
+ <value xml:lang="zh_TW">å·²æ¸
é¤å
¨é¨å¿«å</value>
</property>
<property key="utilCache.clearAllExpiredElements">
<value xml:lang="en">Cleared all expired elements from all caches</value>
@@ -269,7 +269,7 @@
<value xml:lang="ro">Au fost Curatate toate elementele expirate din toate cach-urile</value>
<value xml:lang="th">à¹à¸à¸¥à¸µà¸¢à¸£à¹à¸ªà¸´à¹à¸à¹à¸¥à¹à¸à¸à¹à¸à¸¢à¸«à¸¡à¸à¸à¸²à¸¢à¸¸à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸²à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³à¸à¸±à¹à¸à¸«à¸¡à¸</value>
<value xml:lang="zh">ä»å
¨é¨ç¼åä¸æ¸
é¤äºå
¨é¨è¿æå
ç´ </value>
- <value xml:lang="zh_TW">å¾å
¨é¨ç·©åä¸æ¸
é¤äºå
¨é¨éæå
ç´ </value>
+ <value xml:lang="zh_TW">å¾å
¨é¨å¿«åä¸æ¸
é¤äºå
¨é¨éæå
ç´ </value>
</property>
<property key="utilCache.clearCache">
<value xml:lang="en">Cleared cache with name: ${name}</value>
@@ -280,7 +280,7 @@
<value xml:lang="ro">Curatire cache cu nume: ${name}</value>
<value xml:lang="th">à¹à¸à¸¥à¸µà¸¢à¸£à¹à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³à¸à¹à¸§à¸¢à¸à¸·à¹à¸: ${name}</value>
<value xml:lang="zh">å·²æ¸
é¤ç¼åï¼${name}</value>
- <value xml:lang="zh_TW">å·²æ¸
é¤ç·©åï¼${name}</value>
+ <value xml:lang="zh_TW">å·²æ¸
é¤å¿«åï¼${name}</value>
</property>
<property key="utilCache.couldNotClearCache">
<value xml:lang="en">Could not clear cache, no name specified</value>
@@ -291,7 +291,7 @@
<value xml:lang="ro">Nu este posibila curatarea cach-ului, nici-un nume specificat</value>
<value xml:lang="th">à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸¥à¸µà¸¢à¸£à¹à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³ , à¹à¸¡à¹à¸£à¸°à¸à¸¸à¸à¸·à¹à¸</value>
<value xml:lang="zh">æ æ³æ¸
é¤ç¼åï¼æ²¡ææå®å称</value>
- <value xml:lang="zh_TW">ç¡æ³æ¸
é¤ç·©åï¼æ²ææå®å稱</value>
+ <value xml:lang="zh_TW">ç¡æ³æ¸
é¤å¿«åï¼æ²ææå®å稱</value>
</property>
<property key="utilCache.couldNotClearCacheNotFoundName">
<value xml:lang="en">Could not clear cache, cache not found with name: ${name}</value>
@@ -302,7 +302,7 @@
<value xml:lang="ro">Nu este posibila curatirea cache,nu gaseste nume cache: ${name}</value>
<value xml:lang="th">à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸¥à¸µà¸¢à¸£à¹à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³ , à¹à¸¡à¹à¸à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³à¸à¹à¸§à¸¢à¸à¸·à¹à¸: ${name}</value>
<value xml:lang="zh">æ æ³æ¸
é¤ç¼åï¼æ²¡ææ¾å°ç¼åï¼${name}</value>
- <value xml:lang="zh_TW">ç¡æ³æ¸
é¤ç·©åï¼æ²ææ¾å°ç·©åï¼${name}</value>
+ <value xml:lang="zh_TW">ç¡æ³æ¸
é¤å¿«åï¼æ²ææ¾å°å¿«åï¼${name}</value>
</property>
<property key="utilCache.couldNotRemoveElement">
<value xml:lang="en">Could not remove cache element, cache not found with name: ${name}</value>
@@ -313,7 +313,7 @@
<value xml:lang="ro">Nu este posibila stergerea elementului din chash, nu gaseste chash cu nume: ${name}</value>
<value xml:lang="th">à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸¢à¹à¸²à¸¢à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸à¸à¸²à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³, à¹à¸¡à¹à¸à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³à¸à¹à¸§à¸¢à¸à¸·à¹à¸: ${name}</value>
<value xml:lang="zh">æ æ³å é¤ç¼åå
ç´ ï¼æ²¡ææ¾å°å称为 ${name} çç¼å</value>
- <value xml:lang="zh_TW">ç¡æ³åªé¤ç·©åå
ç´ ï¼æ²ææ¾å°åç¨±çº ${name} çç·©å</value>
+ <value xml:lang="zh_TW">ç¡æ³åªé¤å¿«åå
ç´ ï¼æ²ææ¾å°åç¨±çº ${name} çå¿«å</value>
</property>
<property key="utilCache.couldNotRemoveElementNumber">
<value xml:lang="en">Could not remove cache element, element not found with cache name: ${name} , element number: ${numString}</value>
@@ -324,7 +324,7 @@
<value xml:lang="ro">Nu este possibila stergerea elementului din chesh-ul, nu gaseste elementul cu numele cache: ${name} , element numar: ${numString}</value>
<value xml:lang="th">à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸¢à¹à¸²à¸¢à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸à¸à¸²à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³, à¹à¸¡à¹à¸à¸à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸à¸à¹à¸§à¸¢à¸à¸·à¹à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³: ${name} , หมายà¹à¸¥à¸à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸: ${numString}</value>
<value xml:lang="zh">æ æ³å é¤ç¼åå
ç´ ï¼ç¬¦åæ¡ä»¶çå
ç´ æ²¡ææ¾å°ï¼ç¼åå称ï¼${name}ï¼å
ç´ ç¼å·ï¼${numString}</value>
- <value xml:lang="zh_TW">ç¡æ³åªé¤ç·©åå
ç´ ï¼ç¬¦åæ¢ä»¶çå
ç´ æ²ææ¾å°ï¼ç·©åå稱ï¼${name}ï¼å
ç´ ç·¨èï¼${numString}</value>
+ <value xml:lang="zh_TW">ç¡æ³åªé¤å¿«åå
ç´ ï¼ç¬¦åæ¢ä»¶çå
ç´ æ²ææ¾å°ï¼å¿«åå稱ï¼${name}ï¼å
ç´ ç·¨èï¼${numString}</value>
</property>
<property key="utilCache.couldNotUpdateCacheSetting">
<value xml:lang="en">Could not update cache settings, no name specified</value>
@@ -335,7 +335,7 @@
<value xml:lang="ro">Nu e posibila actualizarea setarilor cache, nici un nume specificat</value>
<value xml:lang="th">à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸±à¸à¹à¸à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³, à¹à¸¡à¹à¸£à¸°à¸à¸¸à¸à¸·à¹à¸</value>
<value xml:lang="zh">æ æ³æ´æ°ç¼å设置ï¼æ²¡ææå®å称</value>
- <value xml:lang="zh_TW">ç¡æ³æ´æ°ç·©åè¨ç½®ï¼æ²ææå®å稱</value>
+ <value xml:lang="zh_TW">ç¡æ³æ´æ°å¿«åè¨ç½®ï¼æ²ææå®å稱</value>
</property>
<property key="utilCache.removeElementWithKey">
<value xml:lang="en">Removed element from cache with key: ${key}</value>
@@ -346,7 +346,7 @@
<value xml:lang="ro">A fost sters elementul din chash-ul cu cheia: ${key}</value>
<value xml:lang="th">ยà¹à¸²à¸¢à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸à¸à¸²à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³à¸à¹à¸§à¸¢à¸à¸µà¸¢à¹: ${key}</value>
<value xml:lang="zh">ä»ç¼åä¸å é¤äºå
ç´ ï¼é®ï¼${key}</value>
- <value xml:lang="zh_TW">å¾ç·©åä¸åªé¤äºå
ç´ ï¼éµï¼${key}</value>
+ <value xml:lang="zh_TW">å¾å¿«åä¸åªé¤äºå
ç´ ï¼éµï¼${key}</value>
</property>
<property key="utilCacheEvents.noCacheNameSpecified">
<value xml:lang="en">Could not remove cache line/element, no cache name specified</value>
@@ -357,7 +357,7 @@
<value xml:lang="ro">Nu este posibila stergerea linieri/element, nici-un nume de chash specificata</value>
<value xml:lang="th">à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³/à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸, à¹à¸¡à¹à¸£à¸°à¸à¸¸à¸à¸·à¹à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³</value>
<value xml:lang="zh">æ æ³å é¤ç¼åè¡/å
ç´ ï¼æ²¡ææå®ç¼åå称</value>
- <value xml:lang="zh_TW">ç¡æ³åªé¤ç·©åè¡/å
ç´ ï¼æ²ææå®ç·©åå稱</value>
+ <value xml:lang="zh_TW">ç¡æ³åªé¤å¿«åè¡/å
ç´ ï¼æ²ææå®å¿«åå稱</value>
</property>
<property key="utilCacheEvents.noElementNumberSpecified">
<value xml:lang="en">Could not remove cache line/element, no element number specified</value>
@@ -368,7 +368,7 @@
<value xml:lang="ro">Nu este posibila stergerea liniei/element, nici-un numar de elemente specificate</value>
<value xml:lang="th">à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³/à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸, à¹à¸¡à¹à¸£à¸°à¸à¸¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¸à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³</value>
<value xml:lang="zh">æ æ³å é¤ç¼åè¡/å
ç´ ï¼æ²¡ææå®å
ç´ ç¼å·</value>
- <value xml:lang="zh_TW">ç¡æ³åªé¤ç·©åè¡/å
ç´ ï¼æ²ææå®å
ç´ ç·¨è</value>
+ <value xml:lang="zh_TW">ç¡æ³åªé¤å¿«åè¡/å
ç´ ï¼æ²ææå®å
ç´ ç·¨è</value>
</property>
<property key="utilCacheEvents.permissionEdit">
<value xml:lang="en">You do not have permission to perform this operation, UTIL_CACHE_EDIT required</value>