svn commit: r1060536 - in /ofbiz/trunk/applications/accounting: config/AccountingUiLabels.xml src/org/ofbiz/accounting/thirdparty/sagepay/SagePayPaymentServices.java src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1060536 - in /ofbiz/trunk/applications/accounting: config/AccountingUiLabels.xml src/org/ofbiz/accounting/thirdparty/sagepay/SagePayPaymentServices.java src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java

mrisaliti
Author: mrisaliti
Date: Tue Jan 18 18:54:55 2011
New Revision: 1060536

URL: http://svn.apache.org/viewvc?rev=1060536&view=rev
Log:
Internationalization of ServiceUtil.returnSuccess, ServiceUtil.returnFailure, ServiceUtil.returnError (OFBIZ-4091)

Modified:
    ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml
    ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/sagepay/SagePayPaymentServices.java
    ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java

Modified: ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml?rev=1060536&r1=1060535&r2=1060536&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml (original)
+++ ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml Tue Jan 18 18:54:55 2011
@@ -9466,6 +9466,22 @@
         <value xml:lang="hi_IN">निरंतर कुल (बकाया राशि)</value>
         <value xml:lang="zh_TW">執行合計 (未清)</value>
     </property>
+    <property key="AccountingSagePayPaymentAuthorisationException">
+        <value xml:lang="en">Exception in calling SagePayPaymentAuthorisation: ${errorString}</value>
+        <value xml:lang="it">Eccezione durante la chiamata a SagePayPaymentAuthorisation: ${errorString}</value>
+    </property>
+    <property key="AccountingSagePayPaymentRefundException">
+        <value xml:lang="en">Exception in calling SagePayPaymentRefund: ${errorString}</value>
+        <value xml:lang="it">Eccezione durante la chiamata a SagePayPaymentRefund: ${errorString}</value>
+    </property>
+    <property key="AccountingSagePayPaymentReleaseException">
+        <value xml:lang="en">Exception in calling SagePayPaymentRelease: ${errorString}</value>
+        <value xml:lang="it">Eccezione durante la chiamata a SagePayPaymentRelease: ${errorString}</value>
+    </property>
+    <property key="AccountingSagePayPaymentVoidException">
+        <value xml:lang="en">Exception in calling SagePayPaymentVoid: ${errorString}</value>
+        <value xml:lang="it">Eccezione durante la chiamata a SagePayPaymentVoid: ${errorString}</value>
+    </property>
     <property key="AccountingSalesInvoiceToRevenue">
         <value xml:lang="de">Zuweisungen von Einkaufsrechnungsarten zu Ertragskonten</value>
         <value xml:lang="en">Sales Invoice type to Revenue GL Account Number assignment list</value>
@@ -10573,6 +10589,102 @@
         <value xml:lang="zh">使用正则表达式验证样式</value>
         <value xml:lang="zh_TW">使用正則運算式驗証樣式</value>
     </property>
+    <property key="AccountingValueLinkGiftCardActivated">
+        <value xml:lang="en">Activation of physical card complete.</value>
+        <value xml:lang="it">Attivazione della carta completata.</value>
+    </property>
+    <property key="AccountingValueLinkCannotStoreWorkingKey">
+        <value xml:lang="en">Unable to store updated keys</value>
+        <value xml:lang="it">Non è possibile registrare chiavi aggiornate</value>
+    </property>
+    <property key="AccountingValueLinkCannotUpdateWorkingKey">
+        <value xml:lang="en">Unable to update MWK</value>
+        <value xml:lang="it">Non è possibile aggiornare MWK</value>
+    </property>
+    <property key="AccountingValueLinkFeatureTypeRequested">
+        <value xml:lang="en">Required feature type TYPE not found for product: ${productId}</value>
+        <value xml:lang="it">Richiesta tipo caratteristica TIPO non trovata per il prodotto: ${productId}</value>
+    </property>
+    <property key="AccountingValueLinkPinDisabled">
+        <value xml:lang="en">PIN disabled.</value>
+        <value xml:lang="it">PIN disabilitato.</value>
+    </property>
+    <property key="AccountingValueLinkPromoCodeInvalid">
+        <value xml:lang="en">Invalid promo code set on idCode field of feature type TYPE</value>
+        <value xml:lang="it">Codice promozione invalido imposta sul campo idCode del tipo caratteristica TIPO</value>
+    </property>
+    <property key="AccountingValueLinkReceivedEmptyResponse">
+        <value xml:lang="en">Received back an empty response from ValueLink</value>
+        <value xml:lang="it">Ricevuta indietro una risposta vuota da ValueLink</value>
+    </property>
+    <property key="AccountingValueLinkThisTransactionIsNotSupported">
+        <value xml:lang="en">This transaction is not supported by ValueLink</value>
+        <value xml:lang="it">Questa transazione non è supportata da ValueLink</value>
+    </property>
+    <property key="AccountingValueLinkTransactionFailed">
+        <value xml:lang="en">Transaction failed with response code: ${responseCode}</value>
+        <value xml:lang="it">Transazione fallita con codice risposta: ${responseCode}</value>
+    </property>
+    <property key="AccountingValueLinkTransactionNotValid">
+        <value xml:lang="en">Not a valid 0704 transaction</value>
+        <value xml:lang="it">Transazione 0704 non valida</value>
+    </property>
+    <property key="AccountingValueLinkUnableToActivateGiftCard">
+        <value xml:lang="en">Unable to activate gift card</value>
+        <value xml:lang="it">Non è possibile attivare la carta regalo</value>
+    </property>
+    <property key="AccountingValueLinkUnableToCallBalanceInquiry">
+        <value xml:lang="en">Unable to call balance inquire</value>
+        <value xml:lang="it">Non è possibile eseguire l'interrogazione bilancio</value>
+    </property>
+    <property key="AccountingValueLinkUnableToCallHistoryInquiry">
+        <value xml:lang="en">Unable to call history inquire</value>
+        <value xml:lang="it">Non è possibile eseguire l'interrogazione dello storico</value>
+    </property>
+    <property key="AccountingValueLinkUnableToDisablePin">
+        <value xml:lang="en">Unable to call disble pin</value>
+        <value xml:lang="it">Non è possibile eseguire la disabilitazione del pin</value>
+    </property>
+    <property key="AccountingValueLinkUnableToGetFeatureType">
+        <value xml:lang="en">Unable to get the required feature type TYPE from Product</value>
+        <value xml:lang="it">Non è possibile ottenete il tipo caratteristica TIPO richiesto da prodotto</value>
+    </property>
+    <property key="AccountingValueLinkUnableToLinkGiftCard">
+        <value xml:lang="en">Unable to link gift card(s)</value>
+        <value xml:lang="it">Non è possibile legare la carta(e) regalo</value>
+    </property>
+    <property key="AccountingValueLinkUnableToReleaseGiftCard">
+        <value xml:lang="en">Attempt to release GiftCard payment failed; not a valid GiftCard record</value>
+        <value xml:lang="it">Tentativo di rilascio pagamento carta regalo fallito; non c'è un record GiftCard valido</value>
+    </property>
+    <property key="AccountingValueLinkUnableToReloadGiftCard">
+        <value xml:lang="en">Unable to reload gift card</value>
+        <value xml:lang="it">Non è possibile ricaricare la carta regalo</value>
+    </property>
+    <property key="AccountingValueLinkUnableToReloadGiftCardFailed">
+        <value xml:lang="en">Gift Card Reload Failed: Processing Error; charges will be refunded</value>
+        <value xml:lang="it">Fallita ricarica carta regalo: errore durante autorizzazione; l'importo verrà rimborsato</value>
+    </property>
+    <property key="AccountingValueLinkUnableToRedeemGiftCard">
+        <value xml:lang="en">Unable to redeem gift card</value>
+        <value xml:lang="it">Non è possibile ritirare la carta regalo</value>
+    </property>
+    <property key="AccountingValueLinkUnableToRedeemGiftCardFailure">
+        <value xml:lang="en">Redeem service failed</value>
+        <value xml:lang="it">Fallito servizio di ritiro</value>
+    </property>
+    <property key="AccountingValueLinkUnableToRefundGiftCard">
+        <value xml:lang="en">Unable to refund gift card</value>
+        <value xml:lang="it">Non è possibile rimborsare la carta regalo</value>
+    </property>
+    <property key="AccountingValueLinkUnableToRefundGiftCardMaxBalanceExceeded">
+        <value xml:lang="en">Gift Card Reload Failed: Max Balance Exceeded; charges will be refunded</value>
+        <value xml:lang="it">Fallita ricarica carta regalo: bilancio massimo oltrepassato; l'importo verrà rimborsato</value>
+    </property>
+    <property key="AccountingValueLinkUnableToRefundGiftCardFailure">
+        <value xml:lang="en">Refund service failed</value>
+        <value xml:lang="it">Servizio rimborso fallito</value>
+    </property>
     <property key="AccountingVarianceReasonGlAccounts">
         <value xml:lang="en">Variance Reason Gl Accounts</value>
         <value xml:lang="fr">Motif de la divergence du Grand Livre général</value>

Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/sagepay/SagePayPaymentServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/sagepay/SagePayPaymentServices.java?rev=1060536&r1=1060535&r2=1060536&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/sagepay/SagePayPaymentServices.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/sagepay/SagePayPaymentServices.java Tue Jan 18 18:54:55 2011
@@ -50,7 +50,6 @@ public class SagePayPaymentServices {
     public final static String resource = "AccountingUiLabels";
 
     private static Map<String, String> buildCustomerBillingInfo(Map<String, Object> context) {
-
         Debug.logInfo("SagePay - Entered buildCustomerBillingInfo", module);
         Debug.logInfo("SagePay buildCustomerBillingInfo context : " + context, module);
 
@@ -154,11 +153,11 @@ public class SagePayPaymentServices {
         Debug.logInfo("SagePay - Entered ccAuth", module);
         Debug.logInfo("SagePay ccAuth context : " + context, module);
         Map<String, Object> response = null;
-
-        String orderId = (String) context.get("orderId");
+        Locale locale = (Locale) context.get("locale");
         GenericValue orderPaymentPreference = (GenericValue) context.get("orderPaymentPreference");
-        if (null == orderPaymentPreference) {
-            response = ServiceUtil.returnError("OrderPaymentPreference for order : " + orderId + " is null : " + orderPaymentPreference);
+        if (orderPaymentPreference == null) {
+            response = ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingProblemGettingOrderPaymentPreferences", locale));
         } else {
             response = processCardAuthorisationPayment(dctx, context);
         }
@@ -169,10 +168,9 @@ public class SagePayPaymentServices {
 
 
     private static Map<String, Object> processCardAuthorisationPayment(DispatchContext ctx, Map<String, Object> context) {
-
         Map<String, Object> result = ServiceUtil.returnSuccess();
         LocalDispatcher dispatcher = ctx.getDispatcher();
-
+        Locale locale = (Locale) context.get("locale");
         Map<String, String> billingInfo = buildCustomerBillingInfo(context);
         String paymentGatewayConfigId = (String) context.get("paymentGatewayConfigId");
 
@@ -231,7 +229,9 @@ public class SagePayPaymentServices {
             }
         } catch(GenericServiceException e) {
             Debug.logError(e, "Error in calling SagePayPaymentAuthentication", module);
-            result = ServiceUtil.returnError("Exception in calling SagePayPaymentRegistration : " + e.getMessage());
+            result = ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingSagePayPaymentAuthorisationException",
+                    UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
         return result;
     }
@@ -239,7 +239,6 @@ public class SagePayPaymentServices {
     public static Map<String, Object> ccCapture(DispatchContext ctx, Map<String, Object> context) {
         Debug.logInfo("SagePay - Entered ccCapture", module);
         Debug.logInfo("SagePay ccCapture context : " + context, module);
-
         GenericValue orderPaymentPreference = (GenericValue) context.get("orderPaymentPreference");
         GenericValue authTransaction = PaymentGatewayServices.getAuthTransaction(orderPaymentPreference);
         context.put("authTransaction", authTransaction);
@@ -251,12 +250,10 @@ public class SagePayPaymentServices {
         return response;
     }
 
-
     private static Map<String, Object> processCardCapturePayment(DispatchContext ctx, Map<String, Object> context) {
-
         Map<String, Object> result = ServiceUtil.returnSuccess();
         LocalDispatcher dispatcher = ctx.getDispatcher();
-
+        Locale locale = (Locale) context.get("locale");
         String paymentGatewayConfigId = (String) context.get("paymentGatewayConfigId");
         GenericValue authTransaction = (GenericValue) context.get("authTransaction");
         BigDecimal amount = (BigDecimal) context.get("captureAmount");
@@ -289,12 +286,13 @@ public class SagePayPaymentServices {
             }
         } catch(GenericServiceException e) {
             Debug.logError(e, "Error in calling SagePayPaymentAuthorisation", module);
-            result = ServiceUtil.returnError("Exception in calling SagePayPaymentRegistration : " + e.getMessage());
+            result = ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingSagePayPaymentAuthorisationException",
+                    UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
         return result;
     }
 
-
     public static Map<String, Object> ccRefund(DispatchContext ctx, Map<String, Object> context) {
         Debug.logInfo("SagePay - Entered ccRefund", module);
         Debug.logInfo("SagePay ccRefund context : " + context, module);
@@ -361,10 +359,9 @@ public class SagePayPaymentServices {
     }
 
     private static Map<String, Object> processCardRefundPayment(DispatchContext ctx, Map<String, Object> context) {
-
         Map<String, Object> result = ServiceUtil.returnSuccess();
         LocalDispatcher dispatcher = ctx.getDispatcher();
-
+        Locale locale = (Locale) context.get("locale");
         String paymentGatewayConfigId = (String) context.get("paymentGatewayConfigId");
         GenericValue captureTransaction = (GenericValue) context.get("captureTransaction");
         BigDecimal amount = (BigDecimal) context.get("refundAmount");
@@ -404,24 +401,24 @@ public class SagePayPaymentServices {
 
         } catch(GenericServiceException e) {
             Debug.logError(e, "Error in calling SagePayPaymentRefund", module);
-            result = ServiceUtil.returnError("Exception in calling SagePayPaymentRefund : " + e.getMessage());
+            result = ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingSagePayPaymentRefundException",
+                    UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
 
         return result;
     }
 
     private static Map<String, Object> processCardVoidPayment(DispatchContext ctx, Map<String, Object> context) {
-
         Map<String, Object> result = ServiceUtil.returnSuccess();
         LocalDispatcher dispatcher = ctx.getDispatcher();
-
+        Locale locale = (Locale) context.get("locale");
         String paymentGatewayConfigId = (String) context.get("paymentGatewayConfigId");
         GenericValue captureTransaction = (GenericValue) context.get("captureTransaction");
         BigDecimal amount = (BigDecimal) context.get("refundAmount");
         String orderId = (String) captureTransaction.get("altReference");
 
         try {
-
             Map<String, Object> paymentResult = dispatcher.runSync("SagePayPaymentVoid",
                     UtilMisc.toMap(
                             "paymentGatewayConfigId", paymentGatewayConfigId,
@@ -453,21 +450,23 @@ public class SagePayPaymentServices {
 
         } catch(GenericServiceException e) {
             Debug.logError(e, "Error in calling SagePayPaymentVoid", module);
-            result = ServiceUtil.returnError("Exception in calling SagePayPaymentVoid : " + e.getMessage());
+            result = ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingSagePayPaymentVoidException",
+                    UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
         return result;
     }
 
     public static Map<String, Object> ccRelease(DispatchContext ctx, Map<String, Object> context) {
-
         Debug.logInfo("SagePay - Entered ccRelease", module);
         Debug.logInfo("SagePay ccRelease context : " + context, module);
-
+        Locale locale = (Locale) context.get("locale");
         GenericValue orderPaymentPreference = (GenericValue) context.get("orderPaymentPreference");
 
         GenericValue authTransaction = PaymentGatewayServices.getAuthTransaction(orderPaymentPreference);
         if (authTransaction == null) {
-            return ServiceUtil.returnError("No authorization transaction found for the OrderPaymentPreference; cannot Release");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingPaymentTransactionAuthorizationNotFoundCannotRelease", locale));
         }
         context.put("authTransaction", authTransaction);
 
@@ -477,9 +476,8 @@ public class SagePayPaymentServices {
     }
 
     private static Map<String, Object> processCardReleasePayment(DispatchContext ctx, Map<String, Object> context) {
-
         Map<String, Object> result = ServiceUtil.returnSuccess();
-
+        Locale locale = (Locale) context.get("locale");
         LocalDispatcher dispatcher = ctx.getDispatcher();
 
         String paymentGatewayConfigId = (String) context.get("paymentGatewayConfigId");
@@ -490,7 +488,6 @@ public class SagePayPaymentServices {
         String refNum = (String) authTransaction.get("referenceNum");
 
         try {
-
             Map<String, Object> paymentResult = dispatcher.runSync("SagePayPaymentRelease",
                     UtilMisc.toMap(
                             "paymentGatewayConfigId", paymentGatewayConfigId,
@@ -517,7 +514,9 @@ public class SagePayPaymentServices {
 
         } catch(GenericServiceException e) {
             Debug.logError(e, "Error in calling SagePayPaymentRelease", module);
-            result = ServiceUtil.returnError("Exception in calling SagePayPaymentRefund : " + e.getMessage());
+            result = ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingSagePayPaymentReleaseException",
+                    UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
 
         return result;

Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java?rev=1060536&r1=1060535&r2=1060536&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java Tue Jan 18 18:54:55 2011
@@ -56,6 +56,9 @@ import org.ofbiz.service.ServiceXaWrappe
 public class ValueLinkServices {
 
     public static final String module = ValueLinkServices.class.getName();
+    public final static String resource = "AccountingUiLabels";
+    public final static String resourceError = "AccountingErrorUiLabels";
+    public final static String resourceOrder = "OrderUiLabels";
 
     // generate/display new public/private/kek keys
     public static Map<String, Object> createKeys(DispatchContext dctx, Map<String, Object> context) {
@@ -132,6 +135,7 @@ public class ValueLinkServices {
         Delegator delegator = dctx.getDelegator();
         GenericValue userLogin = (GenericValue) context.get("userLogin");
         Properties props = getProperties(context);
+        Locale locale = (Locale) context.get("locale");
 
         // get an api instance
         ValueLinkApi vl = ValueLinkApi.getInstance(delegator, props);
@@ -163,7 +167,8 @@ public class ValueLinkServices {
             response = vl.send(request);
         } catch (HttpClientException e) {
             Debug.logError(e, "Problem communicating with VL");
-            return ServiceUtil.returnError("Unable to update MWK");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkCannotUpdateWorkingKey", locale));
         }
         Debug.log("Response : " + response, module);
 
@@ -181,15 +186,19 @@ public class ValueLinkServices {
                     vlKeys.store();
                 } catch (GenericEntityException e) {
                     Debug.logError(e, "Unable to store updated keys; the keys were changed with ValueLink : " + vlKeys, module);
-                    return ServiceUtil.returnError("Unable to store updated keys");
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                            "AccountingValueLinkCannotStoreWorkingKey", locale));
                 }
                 vl.reload();
                 return ServiceUtil.returnSuccess();
             } else {
-                return ServiceUtil.returnError("Transaction failed with response code : " + responseCode);
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "AccountingValueLinkTransactionFailed",
+                        UtilMisc.toMap("responseCode", responseCode), locale));
             }
         } else {
-            return ServiceUtil.returnError("Recevied back an empty response");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkReceivedEmptyResponse", locale));
         }
     }
 
@@ -203,6 +212,7 @@ public class ValueLinkServices {
         String orderId = (String) context.get("orderId");
         String partyId = (String) context.get("partyId");
         BigDecimal amount = (BigDecimal) context.get("amount");
+        Locale locale = (Locale) context.get("locale");
 
         // override interface for void/rollback
         String iFace = (String) context.get("Interface");
@@ -243,7 +253,8 @@ public class ValueLinkServices {
             response = vl.send(request);
         } catch (HttpClientException e) {
             Debug.logError(e, "Problem communicating with VL");
-            return ServiceUtil.returnError("Unable to activate gift card");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToActivateGiftCard", locale));
         }
 
         if (response != null) {
@@ -266,7 +277,8 @@ public class ValueLinkServices {
             Debug.log("Activate Result : " + result, module);
             return result;
         } else {
-            return ServiceUtil.returnError("Empty response returned from ValueLink");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkReceivedEmptyResponse", locale));
         }
     }
 
@@ -278,6 +290,7 @@ public class ValueLinkServices {
         String physicalCard = (String) context.get("physicalCard");
         String physicalPin = (String) context.get("physicalPin");
         String partyId = (String) context.get("partyId");
+        Locale locale = (Locale) context.get("locale");
 
         // get an api instance
         ValueLinkApi vl = ValueLinkApi.getInstance(delegator, props);
@@ -299,12 +312,15 @@ public class ValueLinkServices {
             response = vl.send(request);
         } catch (HttpClientException e) {
             Debug.logError(e, "Problem communicating with VL");
-            return ServiceUtil.returnError("Unable to link gift card(s)");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToLinkGiftCard", locale));
         }
 
         if (response != null) {
             String responseCode = (String) response.get("responsecode");
-            Map<String, Object> result = ServiceUtil.returnSuccess("Activation of physical card complete.");
+            Map<String, Object> result = ServiceUtil.returnSuccess(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkGiftCardActivated", locale));
+            
             if (responseCode.equals("00")) {
 
                 result.put("processResult", Boolean.TRUE);
@@ -320,7 +336,8 @@ public class ValueLinkServices {
             Debug.log("Link Result : " + result, module);
             return result;
         } else {
-            return ServiceUtil.returnError("Empty response returned from ValueLink");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkReceivedEmptyResponse", locale));
         }
     }
 
@@ -332,6 +349,7 @@ public class ValueLinkServices {
         String orderId = (String) context.get("orderId");
         String partyId = (String) context.get("partyId");
         BigDecimal amount = (BigDecimal) context.get("amount");
+        Locale locale = (Locale) context.get("locale");
 
         // get an api instance
         ValueLinkApi vl = ValueLinkApi.getInstance(delegator, props);
@@ -357,12 +375,14 @@ public class ValueLinkServices {
             response = vl.send(request);
         } catch (HttpClientException e) {
             Debug.logError(e, "Problem communicating with VL");
-            return ServiceUtil.returnError("Unable to call disble pin");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToDisablePin", locale));
         }
 
         if (response != null) {
             String responseCode = (String) response.get("responsecode");
-            Map<String, Object> result = ServiceUtil.returnSuccess("PIN disabled.");
+            Map<String, Object> result = ServiceUtil.returnSuccess(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkPinDisabled", locale));
             if (responseCode.equals("00")) {
                 result.put("processResult", Boolean.TRUE);
             } else {
@@ -376,7 +396,8 @@ public class ValueLinkServices {
             Debug.log("Disable Result : " + result, module);
             return result;
         } else {
-            return ServiceUtil.returnError("Empty response returned from ValueLink");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkReceivedEmptyResponse", locale));
         }
     }
 
@@ -389,6 +410,7 @@ public class ValueLinkServices {
         String orderId = (String) context.get("orderId");
         String partyId = (String) context.get("partyId");
         BigDecimal amount = (BigDecimal) context.get("amount");
+        Locale locale = (Locale) context.get("locale");
 
         // override interface for void/rollback
         String iFace = (String) context.get("Interface");
@@ -421,7 +443,8 @@ public class ValueLinkServices {
             response = vl.send(request);
         } catch (HttpClientException e) {
             Debug.logError(e, "Problem communicating with VL");
-            return ServiceUtil.returnError("Unable to redeem gift card");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToRedeemGiftCard", locale));
         }
 
         if (response != null) {
@@ -443,7 +466,8 @@ public class ValueLinkServices {
             Debug.log("Redeem Result : " + result, module);
             return result;
         } else {
-            return ServiceUtil.returnError("Empty response returned from ValueLink");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkReceivedEmptyResponse", locale));
         }
     }
 
@@ -456,6 +480,7 @@ public class ValueLinkServices {
         String orderId = (String) context.get("orderId");
         String partyId = (String) context.get("partyId");
         BigDecimal amount = (BigDecimal) context.get("amount");
+        Locale locale = (Locale) context.get("locale");
 
         // override interface for void/rollback
         String iFace = (String) context.get("Interface");
@@ -488,7 +513,8 @@ public class ValueLinkServices {
             response = vl.send(request);
         } catch (HttpClientException e) {
             Debug.logError(e, "Problem communicating with VL");
-            return ServiceUtil.returnError("Unable to reload gift card");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToReloadGiftCard", locale));
         }
 
         if (response != null) {
@@ -509,7 +535,8 @@ public class ValueLinkServices {
             Debug.log("Reload Result : " + result, module);
             return result;
         } else {
-            return ServiceUtil.returnError("Empty response returned from ValueLink");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkReceivedEmptyResponse", locale));
         }
     }
 
@@ -521,6 +548,7 @@ public class ValueLinkServices {
         String currency = (String) context.get("currency");
         String orderId = (String) context.get("orderId");
         String partyId = (String) context.get("partyId");
+        Locale locale = (Locale) context.get("locale");
 
         // get an api instance
         ValueLinkApi vl = ValueLinkApi.getInstance(delegator, props);
@@ -546,7 +574,8 @@ public class ValueLinkServices {
             response = vl.send(request);
         } catch (HttpClientException e) {
             Debug.logError(e, "Problem communicating with VL");
-            return ServiceUtil.returnError("Unable to call balance inquire");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToCallBalanceInquiry", locale));
         }
 
         if (response != null) {
@@ -565,7 +594,8 @@ public class ValueLinkServices {
             Debug.log("Balance Result : " + result, module);
             return result;
         } else {
-            return ServiceUtil.returnError("Empty response returned from ValueLink");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkReceivedEmptyResponse", locale));
         }
     }
 
@@ -576,6 +606,7 @@ public class ValueLinkServices {
         String pin = (String) context.get("pin");
         String orderId = (String) context.get("orderId");
         String partyId = (String) context.get("partyId");
+        Locale locale = (Locale) context.get("locale");
 
         // get an api instance
         ValueLinkApi vl = ValueLinkApi.getInstance(delegator, props);
@@ -600,7 +631,8 @@ public class ValueLinkServices {
             response = vl.send(request);
         } catch (HttpClientException e) {
             Debug.logError(e, "Problem communicating with VL");
-            return ServiceUtil.returnError("Unable to call history inquire");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToCallHistoryInquiry", locale));
         }
 
         if (response != null) {
@@ -620,7 +652,8 @@ public class ValueLinkServices {
             Debug.log("History Result : " + result, module);
             return result;
         } else {
-            return ServiceUtil.returnError("Empty response returned from ValueLink");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkReceivedEmptyResponse", locale));
         }
     }
 
@@ -633,6 +666,7 @@ public class ValueLinkServices {
         String orderId = (String) context.get("orderId");
         String partyId = (String) context.get("partyId");
         BigDecimal amount = (BigDecimal) context.get("amount");
+        Locale locale = (Locale) context.get("locale");
 
         // override interface for void/rollback
         String iFace = (String) context.get("Interface");
@@ -665,7 +699,8 @@ public class ValueLinkServices {
             response = vl.send(request);
         } catch (HttpClientException e) {
             Debug.logError(e, "Problem communicating with VL");
-            return ServiceUtil.returnError("Unable to refund gift card");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToRefundGiftCard", locale));
         }
 
         if (response != null) {
@@ -686,7 +721,8 @@ public class ValueLinkServices {
             Debug.log("Refund Result : " + result, module);
             return result;
         } else {
-            return ServiceUtil.returnError("Empty response returned from ValueLink");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkReceivedEmptyResponse", locale));
         }
     }
 
@@ -712,11 +748,13 @@ public class ValueLinkServices {
 
     public static Map<String, Object> timeOutReversal(DispatchContext dctx, Map<String, Object> context) {
         String vlInterface = (String) context.get("Interface");
+        Locale locale = (Locale) context.get("locale");
         Debug.log("704 Interface : " + vlInterface, module);
         if (vlInterface != null) {
             if (vlInterface.startsWith("Activate")) {
                 if (vlInterface.equals("Activate/Rollback")) {
-                    return ServiceUtil.returnError("This transaction is not supported by ValueLink");
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                            "AccountingValueLinkThisTransactionIsNotSupported", locale));
                 }
                 return activate(dctx, context);
             } else if (vlInterface.startsWith("Redeem")) {
@@ -728,7 +766,8 @@ public class ValueLinkServices {
             }
         }
 
-        return ServiceUtil.returnError("Not a valid 0704 transaction");
+        return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                "AccountingValueLinkTransactionNotValid", locale));
     }
 
     // 0704 Timeout Reversal (Supports - Activate/Void, Redeem, Redeem/Void, Reload, Reload/Void, Refund, Refund/Void)
@@ -779,13 +818,13 @@ public class ValueLinkServices {
     public static Map<String, Object> giftCardProcessor(DispatchContext dctx, Map<String, Object> context) {
         LocalDispatcher dispatcher = dctx.getDispatcher();
         GenericValue userLogin = (GenericValue) context.get("userLogin");
-
+        Locale locale = (Locale) context.get("locale");
         GenericValue giftCard = (GenericValue) context.get("giftCard");
         GenericValue party = (GenericValue) context.get("billToParty");
         String paymentConfig = (String) context.get("paymentConfig");
         String currency = (String) context.get("currency");
         String orderId = (String) context.get("orderId");
-        BigDecimal amount = (BigDecimal) context.get("processAmount");
+        BigDecimal amount = (BigDecimal) context.get("processAmount");        
 
         // make sure we have a currency
         if (currency == null) {
@@ -808,7 +847,8 @@ public class ValueLinkServices {
             redeemResult = dispatcher.runSync("redeemGiftCard", redeemCtx);
         } catch (GenericServiceException e) {
             Debug.logError(e, "Problem calling the redeem service", module);
-            return ServiceUtil.returnError("Redeem service failed");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToRedeemGiftCardFailure", locale));
         }
 
         Map<String, Object> result = ServiceUtil.returnSuccess();
@@ -854,7 +894,7 @@ public class ValueLinkServices {
     public static Map<String, Object> giftCardRelease(DispatchContext dctx, Map<String, Object> context) {
         LocalDispatcher dispatcher = dctx.getDispatcher();
         GenericValue userLogin = (GenericValue) context.get("userLogin");
-
+        Locale locale = (Locale) context.get("locale");
         GenericValue paymentPref = (GenericValue) context.get("orderPaymentPreference");
         String paymentConfig = (String) context.get("paymentConfig");
         String currency = (String) context.get("currency");
@@ -869,11 +909,13 @@ public class ValueLinkServices {
             giftCard = paymentPref.getRelatedOne("GiftCard");
         } catch (GenericEntityException e) {
             Debug.logError("Unable to get GiftCard from OrderPaymentPreference", module);
-            return ServiceUtil.returnError("Unable to locate GiftCard Information");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotLocateItFromOrderPaymentPreference", locale));
         }
 
         if (giftCard == null) {
-            return ServiceUtil.returnError("Attempt to release GiftCard payment faild; not a valid GiftCard record");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToReleaseGiftCard", locale));
         }
 
         // make sure we have a currency
@@ -896,7 +938,8 @@ public class ValueLinkServices {
             redeemResult = dispatcher.runSync("voidRedeemGiftCard", redeemCtx);
         } catch (GenericServiceException e) {
             Debug.logError(e, "Problem calling the redeem service", module);
-            return ServiceUtil.returnError("Redeem service failed");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToRedeemGiftCardFailure", locale));
         }
 
         Map<String, Object> result = ServiceUtil.returnSuccess();
@@ -915,7 +958,7 @@ public class ValueLinkServices {
     public static Map<String, Object> giftCardRefund(DispatchContext dctx, Map<String, Object> context) {
         LocalDispatcher dispatcher = dctx.getDispatcher();
         GenericValue userLogin = (GenericValue) context.get("userLogin");
-
+        Locale locale = (Locale) context.get("locale");
         GenericValue paymentPref = (GenericValue) context.get("orderPaymentPreference");
         String paymentConfig = (String) context.get("paymentConfig");
         String currency = (String) context.get("currency");
@@ -930,11 +973,13 @@ public class ValueLinkServices {
             giftCard = paymentPref.getRelatedOne("GiftCard");
         } catch (GenericEntityException e) {
             Debug.logError("Unable to get GiftCard from OrderPaymentPreference", module);
-            return ServiceUtil.returnError("Unable to locate GiftCard Information");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotLocateItFromOrderPaymentPreference", locale));
         }
 
         if (giftCard == null) {
-            return ServiceUtil.returnError("Attempt to release GiftCard payment faild; not a valid GiftCard record");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToReleaseGiftCard", locale));
         }
 
         // make sure we have a currency
@@ -957,7 +1002,8 @@ public class ValueLinkServices {
             redeemResult = dispatcher.runSync("refundGiftCard", refundCtx);
         } catch (GenericServiceException e) {
             Debug.logError(e, "Problem calling the refund service", module);
-            return ServiceUtil.returnError("Refund service failed");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToRefundGiftCardFailure", locale));
         }
 
         Map<String, Object> result = ServiceUtil.returnSuccess();
@@ -992,7 +1038,8 @@ public class ValueLinkServices {
             orderHeader = orderItem.getRelatedOne("OrderHeader");
         } catch (GenericEntityException e) {
             Debug.logError(e, "Unable to get OrderHeader from OrderItem",module);
-            return ServiceUtil.returnError("Unable to get OrderHeader from OrderItem");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceOrder,
+                    "OrderOrderNotFound", UtilMisc.toMap("orderId", orderId), locale));
         }
 
         // get the order read helper
@@ -1012,7 +1059,8 @@ public class ValueLinkServices {
             productStoreId = orh.getProductStoreId();
         }
         if (productStoreId == null) {
-            return ServiceUtil.returnError("Unable to process gift card purchase; no productStoreId on OrderHeader : " + orderId);
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotProcess", locale));
         }
 
         // payment config
@@ -1022,7 +1070,9 @@ public class ValueLinkServices {
             paymentConfig = paymentSetting.getString("paymentPropertiesPath");
         }
         if (paymentConfig == null) {
-            return ServiceUtil.returnError("Unable to get payment configuration file");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingFinAccountSetting",
+                    UtilMisc.toMap("productStoreId", productStoreId, "finAccountTypeId", "GIFT_CARD"), locale));
         }
 
         // party ID for tracking
@@ -1044,7 +1094,8 @@ public class ValueLinkServices {
             Debug.logError("Unable to get Product from OrderItem", module);
         }
         if (product == null) {
-            return ServiceUtil.returnError("No product associated with OrderItem, cannot fulfill gift card");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotFulfill", locale));
         }
 
         // get the productFeature type TYPE (VL promo code)
@@ -1057,16 +1108,20 @@ public class ValueLinkServices {
             typeFeature = EntityUtil.getFirst(featureAppls);
         } catch (GenericEntityException e) {
             Debug.logError(e, module);
-            return ServiceUtil.returnError("Unable to get the required feature type TYPE from Product");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToGetFeatureType", locale));
         }
         if (typeFeature == null) {
-            return ServiceUtil.returnError("Required feature type TYPE not found for product : " + product.get("productId"));
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkFeatureTypeRequested",
+                    UtilMisc.toMap("productId", product.get("productId")), locale));
         }
 
         // get the VL promo code
         String promoCode = typeFeature.getString("idCode");
         if (UtilValidate.isEmpty(promoCode)) {
-            return ServiceUtil.returnError("Invalid promo code set on idCode field of feature type TYPE");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkPromoCodeInvalid", locale));
         }
 
         // survey information
@@ -1083,7 +1138,8 @@ public class ValueLinkServices {
             surveyResponse = EntityUtil.getFirst(responses);
         } catch (GenericEntityException e) {
             Debug.logError(e, module);
-            return ServiceUtil.returnError("Unable to get survey response information; cannot fulfill gift card");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotFulfill", locale));
         }
 
         // get the response answers
@@ -1092,7 +1148,8 @@ public class ValueLinkServices {
             responseAnswers = surveyResponse.getRelated("SurveyResponseAnswer");
         } catch (GenericEntityException e) {
             Debug.logError(e, module);
-            return ServiceUtil.returnError("Unable to get survey response answers from survey response; cannot fulfill gift card");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotFulfillFromSurveyAnswers", locale));
         }
 
         // make a map of answer info
@@ -1106,7 +1163,8 @@ public class ValueLinkServices {
                     question = answer.getRelatedOne("SurveyQuestion");
                 } catch (GenericEntityException e) {
                     Debug.logError(e, module);
-                    return ServiceUtil.returnError("Unable to get survey question from answer");
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                            "AccountingGiftCerticateNumberCannotFulfillFromSurveyAnswers", locale));
                 }
                 if (question != null) {
                     String desc = question.getString("description");
@@ -1145,7 +1203,8 @@ public class ValueLinkServices {
                 activateResult = dispatcher.runSync("activateGiftCard", activateCtx);
             } catch (GenericServiceException e) {
                 Debug.logError(e, "Unable to activate gift card(s)", module);
-                return ServiceUtil.returnError("Problem running activation service");
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "AccountingValueLinkUnableToActivateGiftCard", locale));
             }
 
             Boolean processResult = (Boolean) activateResult.get("processResult");
@@ -1185,11 +1244,14 @@ public class ValueLinkServices {
                 dispatcher.runAsync("createGcFulFillmentRecord", vlFulFill, true);
             } catch (GenericServiceException e) {
                 Debug.logError(e, module);
-                return ServiceUtil.returnError("Unable to store fulfillment info");
+                return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                        "AccountingGiftCerticateNumberCannotStoreFulfillmentInfo",
+                        UtilMisc.toMap("errorString", e.toString() ), locale));
             }
 
             if (failure) {
-                return ServiceUtil.returnError("Activate Failed");
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "AccountingValueLinkUnableToActivateGiftCard", locale));
             }
 
             // add some information to the answerMap for the email
@@ -1245,7 +1307,9 @@ public class ValueLinkServices {
                 } catch (GenericServiceException e) {
                     Debug.logError(e, "Problem sending mail", module);
                     // this is fatal; we will rollback and try again later
-                    return ServiceUtil.returnError("Error sending Gift Card notice email: " + e.toString());
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                            "AccountingGiftCerticateNumberCannotSendEmailNotice",
+                            UtilMisc.toMap("errorString", e.toString()), locale));
                 }
             }
         }
@@ -1270,7 +1334,8 @@ public class ValueLinkServices {
             orderHeader = orderItem.getRelatedOne("OrderHeader");
         } catch (GenericEntityException e) {
             Debug.logError(e, "Unable to get OrderHeader from OrderItem",module);
-            return ServiceUtil.returnError("Unable to get OrderHeader from OrderItem");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceOrder,
+                    "OrderOrderNotFound", UtilMisc.toMap("orderId", orderId), locale));
         }
 
         // get the order read helper
@@ -1290,7 +1355,9 @@ public class ValueLinkServices {
             productStoreId = orh.getProductStoreId();
         }
         if (productStoreId == null) {
-            return ServiceUtil.returnError("Unable to process gift card reload; no productStoreId on OrderHeader : " + orderId);
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotProcess",
+                    UtilMisc.toMap("orderId", orderId), locale));
         }
 
         // payment config
@@ -1300,7 +1367,8 @@ public class ValueLinkServices {
             paymentConfig = paymentSetting.getString("paymentPropertiesPath");
         }
         if (paymentConfig == null) {
-            return ServiceUtil.returnError("Unable to get payment configuration file");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotGetPaymentConfiguration", locale));
         }
 
         // party ID for tracking
@@ -1327,7 +1395,8 @@ public class ValueLinkServices {
             surveyResponse = EntityUtil.getFirst(responses);
         } catch (GenericEntityException e) {
             Debug.logError(e, module);
-            return ServiceUtil.returnError("Unable to get survey response information; cannot fulfill gift card reload");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotFulfill", locale));
         }
 
         // get the response answers
@@ -1336,7 +1405,8 @@ public class ValueLinkServices {
             responseAnswers = surveyResponse.getRelated("SurveyResponseAnswer");
         } catch (GenericEntityException e) {
             Debug.logError(e, module);
-            return ServiceUtil.returnError("Unable to get survey response answers from survey response; cannot fulfill gift card reload");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotFulfillFromSurveyAnswers", locale));
         }
 
         // make a map of answer info
@@ -1350,7 +1420,8 @@ public class ValueLinkServices {
                     question = answer.getRelatedOne("SurveyQuestion");
                 } catch (GenericEntityException e) {
                     Debug.logError(e, module);
-                    return ServiceUtil.returnError("Unable to get survey question from answer");
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                            "AccountingGiftCerticateNumberCannotFulfillFromSurveyAnswers", locale));
                 }
                 if (question != null) {
                     String desc = question.getString("description");
@@ -1381,7 +1452,8 @@ public class ValueLinkServices {
             reloadResult = dispatcher.runSync("reloadGiftCard", reloadCtx);
         } catch (GenericServiceException e) {
             Debug.logError(e, "Unable to reload gift card", module);
-            return ServiceUtil.returnError("Problem running reload service");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "AccountingValueLinkUnableToReloadGiftCard", locale));
         }
 
         // create the fulfillment record
@@ -1403,7 +1475,8 @@ public class ValueLinkServices {
             dispatcher.runAsync("createGcFulFillmentRecord", vlFulFill, true);
         } catch (GenericServiceException e) {
             Debug.logError(e, module);
-            return ServiceUtil.returnError("Unable to store fulfillment info");
+            return ServiceUtil.returnError(UtilProperties.getMessage(resourceError,
+                    "AccountingGiftCerticateNumberCannotStoreFulfillmentInfo", locale));
         }
 
         Boolean processResult = (Boolean) reloadResult.get("processResult");
@@ -1425,10 +1498,12 @@ public class ValueLinkServices {
             }
             if ("17".equals(responseCode)) {
                 Debug.logError("Error code : " + responseCode + " : Max Balance Exceeded", module);
-                return ServiceUtil.returnError("Gift Card Reload Failed : Max Balance Exceeded; charges will be refunded");
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "AccountingValueLinkUnableToRefundGiftCardMaxBalanceExceeded", locale));
             } else {
                 Debug.logError("Error code : " + responseCode + " : Processing Error", module);
-                return ServiceUtil.returnError("Gift Card Reload Failed : Processing Error; charges will be refunded");
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "AccountingValueLinkUnableToReloadGiftCardFailed", locale));
             }
         }
 
@@ -1476,7 +1551,9 @@ public class ValueLinkServices {
             } catch (GenericServiceException e) {
                 Debug.logError(e, "Problem sending mail", module);
                 // this is fatal; we will rollback and try again later
-                return ServiceUtil.returnError("Error sending Gift Card notice email: " + e.toString());
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "AccountingGiftCerticateNumberCannotSendEmailNotice",
+                        UtilMisc.toMap("errorString", e.toString()), locale));
             }
         }