<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <property key="GoogleCheckoutAddGoogleCheckoutConfiguration">
        <value xml:lang="en">Add Google Checkout Configuration</value>
        <value xml:lang="it">Aggiungi Configurazione Google Checkout</value>
    </property>
    <property key="GoogleCheckoutAddGoogleCheckoutShippingMethod">
        <value xml:lang="en">Add Google Checkout Shipping Method</value>
        <value xml:lang="it">Aggiungi metodo di spedizione Google Checkout</value>
    </property>
    <property key="GoogleCheckoutApplication">
        <value xml:lang="en">Google Checkout Application</value>
        <value xml:lang="it">Applicazione Google Checkout</value>
    </property>
    <property key="GoogleCheckoutCompanyName">
        <value xml:lang="en">OFBiz: Google Checkout</value>
        <value xml:lang="it">OFBiz: Google Checkout</value>
    </property>
    <property key="GoogleCheckoutConfigurationError">
        <value xml:lang="en">Google checkout configuration error</value>
        <value xml:lang="it">Errore di configurazione di Google checkout</value>
    </property>
    <property key="GoogleCheckoutGoogleCheckoutConfiguration">
        <value xml:lang="en">Google Checkout Configuration</value>
        <value xml:lang="it">Configurazione di Google Checkout</value>
    </property>
    <property key="GoogleCheckoutOrderCannotBeModified">
        <value xml:lang="en">Google Checkout orders cannot be modified. You may cancel orders/items only!</value>
        <value xml:lang="it">Ordini di Google Checkout non possono essere modificati. Tu puoi cancellare solo gli ordini/righe!</value>
    </property>
    <property key="GoogleCheckoutResponseIsNull">
        <value xml:lang="en">Google Checkout response was null</value>
        <value xml:lang="it">Risposta da Google Checkout è nulla</value>
    </property>
    <property key="GoogleCheckoutShippingConfigurationInvalid">
        <value xml:lang="en">Invalid Google Checkout Shipping Configuration! Carriers can only be UPS, FedEx or USPS.</value>
        <value xml:lang="it">Configurazione spedizioni di Google Checkout invalida! Spedizioniere può essere solo UPS, FedEx o USPS.</value>
    </property>
    <property key="GoogleCheckoutShippingMethods">
        <value xml:lang="en">Shipping Methods Configuration</value>
        <value xml:lang="it">Configurazione metodi di spedizioni</value>
    </property>
</resource>
