Translation components API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/changes/?format=api&page=76
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 4016,
    "next": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/changes/?format=api&page=77",
    "previous": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/changes/?format=api&page=75",
    "results": [
        {
            "unit": "https://hosted.weblate.org/api/units/102784501/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.903084+02:00",
            "action": 13,
            "target": "Use axios to make HTTP requests to different APIs.",
            "old": "Use axios to make HTTP requests to different APIs.",
            "details": {
                "state": 100,
                "source": "Use axios to make HTTP requests to different APIs.",
                "old_state": 100
            },
            "id": 62521188,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521188/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784499/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.864795+02:00",
            "action": 13,
            "target": "Use React to create user interfaces for each PBC.",
            "old": "Use React to create user interfaces for each PBC.",
            "details": {
                "state": 100,
                "source": "Use React to create user interfaces for each PBC.",
                "old_state": 100
            },
            "id": 62521187,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521187/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784497/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.822885+02:00",
            "action": 13,
            "target": "Use webpack's Module Federation plugin to expose and consume remote modules from different containers.",
            "old": "Use webpack's Module Federation plugin to expose and consume remote modules from different containers.",
            "details": {
                "state": 100,
                "source": "Use webpack's Module Federation plugin to expose and consume remote modules from different containers.",
                "old_state": 100
            },
            "id": 62521186,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521186/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784495/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.783658+02:00",
            "action": 13,
            "target": "Congratulations! You have successfully created an e-commerce application using Module Federation + Composable Commerce. You have learned how to:",
            "old": "Congratulations! You have successfully created an e-commerce application using Module Federation + Composable Commerce. You have learned how to:",
            "details": {
                "state": 100,
                "source": "Congratulations! You have successfully created an e-commerce application using Module Federation + Composable Commerce. You have learned how to:",
                "old_state": 100
            },
            "id": 62521185,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521185/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784493/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.743835+02:00",
            "action": 13,
            "target": "Check the console logs in your browser's developer tools to see the responses from Sitecore and Stripe.",
            "old": "Check the console logs in your browser's developer tools to see the responses from Sitecore and Stripe.",
            "details": {
                "state": 100,
                "source": "Check the console logs in your browser's developer tools to see the responses from Sitecore and Stripe.",
                "old_state": 100
            },
            "id": 62521184,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521184/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784491/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.711248+02:00",
            "action": 13,
            "target": "Click on the Pay button in the Payment component to pay for your order using Stripe.",
            "old": "Click on the Pay button in the Payment component to pay for your order using Stripe.",
            "details": {
                "state": 100,
                "source": "Click on the Pay button in the Payment component to pay for your order using Stripe.",
                "old_state": 100
            },
            "id": 62521183,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521183/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784489/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.674134+02:00",
            "action": 13,
            "target": "Fill in the form in the Checkout component with your customer details and click on the Submit button to send them to Sitecore.",
            "old": "Fill in the form in the Checkout component with your customer details and click on the Submit button to send them to Sitecore.",
            "details": {
                "state": 100,
                "source": "Fill in the form in the Checkout component with your customer details and click on the Submit button to send them to Sitecore.",
                "old_state": 100
            },
            "id": 62521182,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521182/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784487/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.633639+02:00",
            "action": 13,
            "target": "Click on the Remove button in the Cart component to remove any product from the cart.",
            "old": "Click on the Remove button in the Cart component to remove any product from the cart.",
            "details": {
                "state": 100,
                "source": "Click on the Remove button in the Cart component to remove any product from the cart.",
                "old_state": 100
            },
            "id": 62521181,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521181/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784485/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.593043+02:00",
            "action": 13,
            "target": "Click on any product image or name in the Product Catalog component to add it to the Cart component.",
            "old": "Click on any product image or name in the Product Catalog component to add it to the Cart component.",
            "details": {
                "state": 100,
                "source": "Click on any product image or name in the Product Catalog component to add it to the Cart component.",
                "old_state": 100
            },
            "id": 62521180,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521180/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784483/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.553988+02:00",
            "action": 13,
            "target": "To interact with these components, follow these steps:",
            "old": "To interact with these components, follow these steps:",
            "details": {
                "state": 100,
                "source": "To interact with these components, follow these steps:",
                "old_state": 100
            },
            "id": 62521179,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521179/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784481/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.513331+02:00",
            "action": 13,
            "target": "You have now created four container applications that expose their PBCs as remote modules using Module Federation. To test the integration of these modules with the host application, go back to the host application folder in your terminal or command-line interface and run `npm start` again. Then open your browser to `http://localhost:3000`. You should see a web page with four components: Product Catalog, Cart, Checkout and Payment.",
            "old": "You have now created four container applications that expose their PBCs as remote modules using Module Federation. To test the integration of these modules with the host application, go back to the host application folder in your terminal or command-line interface and run `npm start` again. Then open your browser to `http://localhost:3000`. You should see a web page with four components: Product Catalog, Cart, Checkout and Payment.",
            "details": {
                "state": 100,
                "source": "You have now created four container applications that expose their PBCs as remote modules using Module Federation. To test the integration of these modules with the host application, go back to the host application folder in your terminal or command-line interface and run `npm start` again. Then open your browser to `http://localhost:3000`. You should see a web page with four components: Product Catalog, Cart, Checkout and Payment.",
                "old_state": 100
            },
            "id": 62521178,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521178/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784479/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.479908+02:00",
            "action": 13,
            "target": "In your terminal or command-line interface, run `npm start` to start the development server and open your browser to `http://localhost:3004`. You should see a web page with a title and a button.",
            "old": "In your terminal or command-line interface, run `npm start` to start the development server and open your browser to `http://localhost:3004`. You should see a web page with a title and a button.",
            "details": {
                "state": 100,
                "source": "In your terminal or command-line interface, run `npm start` to start the development server and open your browser to `http://localhost:3004`. You should see a web page with a title and a button.",
                "old_state": 100
            },
            "id": 62521177,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521177/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784477/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.450697+02:00",
            "action": 13,
            "target": "This code imports React and its useState hook, as well as Stripe's JavaScript library for creating and confirming payments. It defines a Payment component that manages an object of payment intent data and provides a function to handle payment using Stripe's REST API and JavaScript library. It also renders a button and the payment intent data on the web page.",
            "old": "This code imports React and its useState hook, as well as Stripe's JavaScript library for creating and confirming payments. It defines a Payment component that manages an object of payment intent data and provides a function to handle payment using Stripe's REST API and JavaScript library. It also renders a button and the payment intent data on the web page.",
            "details": {
                "state": 100,
                "source": "This code imports React and its useState hook, as well as Stripe's JavaScript library for creating and confirming payments. It defines a Payment component that manages an object of payment intent data and provides a function to handle payment using Stripe's REST API and JavaScript library. It also renders a button and the payment intent data on the web page.",
                "old_state": 100
            },
            "id": 62521176,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521176/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784475/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.419788+02:00",
            "action": 13,
            "target": "export default Payment;\n",
            "old": "export default Payment;\n",
            "details": {
                "state": 100,
                "source": "export default Payment;\n",
                "old_state": 100
            },
            "id": 62521175,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521175/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784473/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.390675+02:00",
            "action": 13,
            "target": "  return (\n    <div>\n      <h2>Payment</h2>\n      <button onClick={handlePayment}>Pay</button>\n      {paymentIntent && (\n        <div>\n          <p>Payment intent ID: {paymentIntent.id}</p>\n          <p>Payment intent status: {paymentIntent.status}</p>\n        </div>\n      )}\n    </div>\n  );\n};\n",
            "old": "  return (\n    <div>\n      <h2>Payment</h2>\n      <button onClick={handlePayment}>Pay</button>\n      {paymentIntent && (\n        <div>\n          <p>Payment intent ID: {paymentIntent.id}</p>\n          <p>Payment intent status: {paymentIntent.status}</p>\n        </div>\n      )}\n    </div>\n  );\n};\n",
            "details": {
                "state": 100,
                "source": "  return (\n    <div>\n      <h2>Payment</h2>\n      <button onClick={handlePayment}>Pay</button>\n      {paymentIntent && (\n        <div>\n          <p>Payment intent ID: {paymentIntent.id}</p>\n          <p>Payment intent status: {paymentIntent.status}</p>\n        </div>\n      )}\n    </div>\n  );\n};\n",
                "old_state": 100
            },
            "id": 62521174,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521174/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784471/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.349584+02:00",
            "action": 13,
            "target": "  const handlePayment = async () => {\n    // Create a Stripe instance using your publishable key\n    // For simplicity, we hardcode the key here\n    // In a real scenario, you would use a dynamic way to get this value\n    const stripe = await loadStripe(\n      \"test_key_XXXXXXXXXXX\"\n    );\n    // Create a payment intent using Stripe's REST API\n    // For simplicity, we hardcode the authentication token and the amount here\n    // In a real scenario, you would use a dynamic way to get these values\n    const token = \"Bearer xxx\"; // Replace with your own token\n    const amount = 100; // Replace with your own amount\n    const response = await fetch(\"https://api.stripe.com/v1/payment_intents\", {\n      method: \"POST\",\n      headers: {\n        Authorization: token,\n        \"Content-Type\": \"application/x-www-form-urlencoded\",\n      },\n      body: `amount=${amount}&currency=usd`,\n    });\n    const data = await response.json();\n    // Update the state with the payment intent data\n    setPaymentIntent(data);\n    // Confirm the payment using Stripe's JavaScript library\n    const result = await stripe.confirmCardPayment(data.client_secret, {\n      payment_method: {\n        card: {\n          number: \"4242424242424242\", // Replace with your own card number\n          exp_month: 12, // Replace with your own card expiration month\n          exp_year: 2025, // Replace with your own card expiration year\n          cvc: \"123\", // Replace with your own card CVC\n        },\n      },\n    });\n    // Handle the payment result\n    if (result.error) {\n      // Show error message to the customer\n      console.error(result.error.message);\n    } else {\n      if (result.paymentIntent.status === \"succeeded\") {\n        // Show success message to the customer\n        console.log(\"Payment succeeded\");\n      }\n    }\n  };\n",
            "old": "  const handlePayment = async () => {\n    // Create a Stripe instance using your publishable key\n    // For simplicity, we hardcode the key here\n    // In a real scenario, you would use a dynamic way to get this value\n    const stripe = await loadStripe(\n      \"test_key_XXXXXXXXXXX\"\n    );\n    // Create a payment intent using Stripe's REST API\n    // For simplicity, we hardcode the authentication token and the amount here\n    // In a real scenario, you would use a dynamic way to get these values\n    const token = \"Bearer xxx\"; // Replace with your own token\n    const amount = 100; // Replace with your own amount\n    const response = await fetch(\"https://api.stripe.com/v1/payment_intents\", {\n      method: \"POST\",\n      headers: {\n        Authorization: token,\n        \"Content-Type\": \"application/x-www-form-urlencoded\",\n      },\n      body: `amount=${amount}&currency=usd`,\n    });\n    const data = await response.json();\n    // Update the state with the payment intent data\n    setPaymentIntent(data);\n    // Confirm the payment using Stripe's JavaScript library\n    const result = await stripe.confirmCardPayment(data.client_secret, {\n      payment_method: {\n        card: {\n          number: \"4242424242424242\", // Replace with your own card number\n          exp_month: 12, // Replace with your own card expiration month\n          exp_year: 2025, // Replace with your own card expiration year\n          cvc: \"123\", // Replace with your own card CVC\n        },\n      },\n    });\n    // Handle the payment result\n    if (result.error) {\n      // Show error message to the customer\n      console.error(result.error.message);\n    } else {\n      if (result.paymentIntent.status === \"succeeded\") {\n        // Show success message to the customer\n        console.log(\"Payment succeeded\");\n      }\n    }\n  };\n",
            "details": {
                "state": 100,
                "source": "  const handlePayment = async () => {\n    // Create a Stripe instance using your publishable key\n    // For simplicity, we hardcode the key here\n    // In a real scenario, you would use a dynamic way to get this value\n    const stripe = await loadStripe(\n      \"test_key_XXXXXXXXXXX\"\n    );\n    // Create a payment intent using Stripe's REST API\n    // For simplicity, we hardcode the authentication token and the amount here\n    // In a real scenario, you would use a dynamic way to get these values\n    const token = \"Bearer xxx\"; // Replace with your own token\n    const amount = 100; // Replace with your own amount\n    const response = await fetch(\"https://api.stripe.com/v1/payment_intents\", {\n      method: \"POST\",\n      headers: {\n        Authorization: token,\n        \"Content-Type\": \"application/x-www-form-urlencoded\",\n      },\n      body: `amount=${amount}&currency=usd`,\n    });\n    const data = await response.json();\n    // Update the state with the payment intent data\n    setPaymentIntent(data);\n    // Confirm the payment using Stripe's JavaScript library\n    const result = await stripe.confirmCardPayment(data.client_secret, {\n      payment_method: {\n        card: {\n          number: \"4242424242424242\", // Replace with your own card number\n          exp_month: 12, // Replace with your own card expiration month\n          exp_year: 2025, // Replace with your own card expiration year\n          cvc: \"123\", // Replace with your own card CVC\n        },\n      },\n    });\n    // Handle the payment result\n    if (result.error) {\n      // Show error message to the customer\n      console.error(result.error.message);\n    } else {\n      if (result.paymentIntent.status === \"succeeded\") {\n        // Show success message to the customer\n        console.log(\"Payment succeeded\");\n      }\n    }\n  };\n",
                "old_state": 100
            },
            "id": 62521173,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521173/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784469/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.301661+02:00",
            "action": 13,
            "target": "const Payment = () => {\n  const [paymentIntent, setPaymentIntent] = useState(null);\n",
            "old": "const Payment = () => {\n  const [paymentIntent, setPaymentIntent] = useState(null);\n",
            "details": {
                "state": 100,
                "source": "const Payment = () => {\n  const [paymentIntent, setPaymentIntent] = useState(null);\n",
                "old_state": 100
            },
            "id": 62521172,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521172/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784467/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.265743+02:00",
            "action": 13,
            "target": "// Payment.js\nimport React, { useState } from \"react\";\nimport { loadStripe } from \"@stripe/stripe-js\";\n",
            "old": "// Payment.js\nimport React, { useState } from \"react\";\nimport { loadStripe } from \"@stripe/stripe-js\";\n",
            "details": {
                "state": 100,
                "source": "// Payment.js\nimport React, { useState } from \"react\";\nimport { loadStripe } from \"@stripe/stripe-js\";\n",
                "old_state": 100
            },
            "id": 62521171,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521171/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784465/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.241203+02:00",
            "action": 13,
            "target": "Create a `src` folder in the root folder of your project and add a `Payment.js` file with the following code:",
            "old": "Create a `src` folder in the root folder of your project and add a `Payment.js` file with the following code:",
            "details": {
                "state": 100,
                "source": "Create a `src` folder in the root folder of your project and add a `Payment.js` file with the following code:",
                "old_state": 100
            },
            "id": 62521170,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521170/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784463/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.217742+02:00",
            "action": 13,
            "target": "<!-- index.html -->\n<html>\n  <head>\n    <title>Payment</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"remoteEntry.js\"></script>\n  </body>\n</html>\n",
            "old": "<!-- index.html -->\n<html>\n  <head>\n    <title>Payment</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"remoteEntry.js\"></script>\n  </body>\n</html>\n",
            "details": {
                "state": 100,
                "source": "<!-- index.html -->\n<html>\n  <head>\n    <title>Payment</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"remoteEntry.js\"></script>\n  </body>\n</html>\n",
                "old_state": 100
            },
            "id": 62521169,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521169/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784461/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.183150+02:00",
            "action": 13,
            "target": "This code configures webpack to create a development server on port 3004 and to use Module Federation plugin to expose the Payment PBC as a remote module with the name `payment` and the filename `remoteEntry.js`.",
            "old": "This code configures webpack to create a development server on port 3004 and to use Module Federation plugin to expose the Payment PBC as a remote module with the name `payment` and the filename `remoteEntry.js`.",
            "details": {
                "state": 100,
                "source": "This code configures webpack to create a development server on port 3004 and to use Module Federation plugin to expose the Payment PBC as a remote module with the name `payment` and the filename `remoteEntry.js`.",
                "old_state": 100
            },
            "id": 62521168,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521168/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784459/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.148625+02:00",
            "action": 13,
            "target": "module.exports = {\n  mode: \"development\",\n  devServer: {\n    port: 3004,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: \"./public/index.html\",\n    }),\n    new ModuleFederationPlugin({\n      name: \"payment\",\n      filename: \"remoteEntry.js\",\n      exposes: {\n        \"./Payment\": \"./src/Payment\",\n      },\n    }),\n  ],\n};\n",
            "old": "module.exports = {\n  mode: \"development\",\n  devServer: {\n    port: 3004,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: \"./public/index.html\",\n    }),\n    new ModuleFederationPlugin({\n      name: \"payment\",\n      filename: \"remoteEntry.js\",\n      exposes: {\n        \"./Payment\": \"./src/Payment\",\n      },\n    }),\n  ],\n};\n",
            "details": {
                "state": 100,
                "source": "module.exports = {\n  mode: \"development\",\n  devServer: {\n    port: 3004,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: \"./public/index.html\",\n    }),\n    new ModuleFederationPlugin({\n      name: \"payment\",\n      filename: \"remoteEntry.js\",\n      exposes: {\n        \"./Payment\": \"./src/Payment\",\n      },\n    }),\n  ],\n};\n",
                "old_state": 100
            },
            "id": 62521167,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521167/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784457/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.118516+02:00",
            "action": 13,
            "target": "To create the Payment container application, follow these steps:",
            "old": "To create the Payment container application, follow these steps:",
            "details": {
                "state": 100,
                "source": "To create the Payment container application, follow these steps:",
                "old_state": 100
            },
            "id": 62521166,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521166/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784455/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.092623+02:00",
            "action": 13,
            "target": "In your terminal or command-line interface, run `npm start` to start the development server and open your browser to `http://localhost:3003`. You should see a web page with a title and a form.",
            "old": "In your terminal or command-line interface, run `npm start` to start the development server and open your browser to `http://localhost:3003`. You should see a web page with a title and a form.",
            "details": {
                "state": 100,
                "source": "In your terminal or command-line interface, run `npm start` to start the development server and open your browser to `http://localhost:3003`. You should see a web page with a title and a form.",
                "old_state": 100
            },
            "id": 62521165,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521165/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784453/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.063052+02:00",
            "action": 13,
            "target": "This code imports React and its useState hook. It defines a Checkout component that manages an object of customer data and provides functions to handle input changes and form submission. It also renders a form with the customer data on the web page.",
            "old": "This code imports React and its useState hook. It defines a Checkout component that manages an object of customer data and provides functions to handle input changes and form submission. It also renders a form with the customer data on the web page.",
            "details": {
                "state": 100,
                "source": "This code imports React and its useState hook. It defines a Checkout component that manages an object of customer data and provides functions to handle input changes and form submission. It also renders a form with the customer data on the web page.",
                "old_state": 100
            },
            "id": 62521164,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521164/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784451/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:29.028430+02:00",
            "action": 13,
            "target": "export default Checkout;\n",
            "old": "export default Checkout;\n",
            "details": {
                "state": 100,
                "source": "export default Checkout;\n",
                "old_state": 100
            },
            "id": 62521163,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521163/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784449/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.995698+02:00",
            "action": 13,
            "target": "  return (\n    <div>\n      <h2>Checkout</h2>\n      <form onSubmit={handleSubmit}>\n        <label htmlFor=\"firstName\">First name</label>\n        <input\n          type=\"text\"\n          id=\"firstName\"\n          name=\"firstName\"\n          value={customer.firstName}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"lastName\">Last name</label>\n        <input\n          type=\"text\"\n          id=\"lastName\"\n          name=\"lastName\"\n          value={customer.lastName}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"email\">Email</label>\n        <input\n          type=\"email\"\n          id=\"email\"\n          name=\"email\"\n          value={customer.email}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"address\">Address</label>\n        <input\n          type=\"text\"\n          id=\"address\"\n          name=\"address\"\n          value={customer.address}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"city\">City</label>\n        <input\n          type=\"text\"\n          id=\"city\"\n          name=\"city\"\n          value={customer.city}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"state\">State</label>\n        <input\n          type=\"text\"\n          id=\"state\"\n          name=\"state\"\n          value={customer.state}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"zip\">Zip code</label>\n        <input\n          type=\"text\"\n          id=\"zip\"\n          name=\"zip\"\n          value={customer.zip}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"country\">Country</label>\n        <input\n          type=\"text\"\n          id=\"country\"\n          name=\"country\"\n          value={customer.country}\n          onChange={handleChange}\n          required\n        />\n        <button type=\"submit\">Submit</button>\n      </form>\n    </div>\n  );\n};\n",
            "old": "  return (\n    <div>\n      <h2>Checkout</h2>\n      <form onSubmit={handleSubmit}>\n        <label htmlFor=\"firstName\">First name</label>\n        <input\n          type=\"text\"\n          id=\"firstName\"\n          name=\"firstName\"\n          value={customer.firstName}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"lastName\">Last name</label>\n        <input\n          type=\"text\"\n          id=\"lastName\"\n          name=\"lastName\"\n          value={customer.lastName}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"email\">Email</label>\n        <input\n          type=\"email\"\n          id=\"email\"\n          name=\"email\"\n          value={customer.email}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"address\">Address</label>\n        <input\n          type=\"text\"\n          id=\"address\"\n          name=\"address\"\n          value={customer.address}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"city\">City</label>\n        <input\n          type=\"text\"\n          id=\"city\"\n          name=\"city\"\n          value={customer.city}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"state\">State</label>\n        <input\n          type=\"text\"\n          id=\"state\"\n          name=\"state\"\n          value={customer.state}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"zip\">Zip code</label>\n        <input\n          type=\"text\"\n          id=\"zip\"\n          name=\"zip\"\n          value={customer.zip}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"country\">Country</label>\n        <input\n          type=\"text\"\n          id=\"country\"\n          name=\"country\"\n          value={customer.country}\n          onChange={handleChange}\n          required\n        />\n        <button type=\"submit\">Submit</button>\n      </form>\n    </div>\n  );\n};\n",
            "details": {
                "state": 100,
                "source": "  return (\n    <div>\n      <h2>Checkout</h2>\n      <form onSubmit={handleSubmit}>\n        <label htmlFor=\"firstName\">First name</label>\n        <input\n          type=\"text\"\n          id=\"firstName\"\n          name=\"firstName\"\n          value={customer.firstName}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"lastName\">Last name</label>\n        <input\n          type=\"text\"\n          id=\"lastName\"\n          name=\"lastName\"\n          value={customer.lastName}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"email\">Email</label>\n        <input\n          type=\"email\"\n          id=\"email\"\n          name=\"email\"\n          value={customer.email}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"address\">Address</label>\n        <input\n          type=\"text\"\n          id=\"address\"\n          name=\"address\"\n          value={customer.address}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"city\">City</label>\n        <input\n          type=\"text\"\n          id=\"city\"\n          name=\"city\"\n          value={customer.city}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"state\">State</label>\n        <input\n          type=\"text\"\n          id=\"state\"\n          name=\"state\"\n          value={customer.state}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"zip\">Zip code</label>\n        <input\n          type=\"text\"\n          id=\"zip\"\n          name=\"zip\"\n          value={customer.zip}\n          onChange={handleChange}\n          required\n        />\n        <label htmlFor=\"country\">Country</label>\n        <input\n          type=\"text\"\n          id=\"country\"\n          name=\"country\"\n          value={customer.country}\n          onChange={handleChange}\n          required\n        />\n        <button type=\"submit\">Submit</button>\n      </form>\n    </div>\n  );\n};\n",
                "old_state": 100
            },
            "id": 62521162,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521162/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784447/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.958294+02:00",
            "action": 13,
            "target": "  const handleSubmit = (event) => {\n    // Prevent the default form submission behavior\n    event.preventDefault();\n    // Validate the customer data and send it to Sitecore using its REST API\n    // For simplicity, we hardcode the authentication token and the base URL\n    // In a real scenario, you would use a dynamic way to get these values\n    const token = \"Bearer xxx\"; // Replace with your own token\n    const baseURL = \"https://demo.sitecore.com/api/checkout\"; // Replace with your own URL\n    axios\n      .post(\n        `${baseURL}/customer`,\n        {\n          firstName: customer.firstName,\n          lastName: customer.lastName,\n          email: customer.email,\n          address: customer.address,\n          city: customer.city,\n          state: customer.state,\n          zip: customer.zip,\n          country: customer.country,\n        },\n        {\n          headers: {\n            Authorization: token,\n            \"Content-Type\": \"application/json\",\n          },\n        }\n      )\n      .then((response) => {\n        // Handle success\n        console.log(response.data);\n      })\n      .catch((error) => {\n        // Handle errors\n        console.error(error);\n      });\n  };\n",
            "old": "  const handleSubmit = (event) => {\n    // Prevent the default form submission behavior\n    event.preventDefault();\n    // Validate the customer data and send it to Sitecore using its REST API\n    // For simplicity, we hardcode the authentication token and the base URL\n    // In a real scenario, you would use a dynamic way to get these values\n    const token = \"Bearer xxx\"; // Replace with your own token\n    const baseURL = \"https://demo.sitecore.com/api/checkout\"; // Replace with your own URL\n    axios\n      .post(\n        `${baseURL}/customer`,\n        {\n          firstName: customer.firstName,\n          lastName: customer.lastName,\n          email: customer.email,\n          address: customer.address,\n          city: customer.city,\n          state: customer.state,\n          zip: customer.zip,\n          country: customer.country,\n        },\n        {\n          headers: {\n            Authorization: token,\n            \"Content-Type\": \"application/json\",\n          },\n        }\n      )\n      .then((response) => {\n        // Handle success\n        console.log(response.data);\n      })\n      .catch((error) => {\n        // Handle errors\n        console.error(error);\n      });\n  };\n",
            "details": {
                "state": 100,
                "source": "  const handleSubmit = (event) => {\n    // Prevent the default form submission behavior\n    event.preventDefault();\n    // Validate the customer data and send it to Sitecore using its REST API\n    // For simplicity, we hardcode the authentication token and the base URL\n    // In a real scenario, you would use a dynamic way to get these values\n    const token = \"Bearer xxx\"; // Replace with your own token\n    const baseURL = \"https://demo.sitecore.com/api/checkout\"; // Replace with your own URL\n    axios\n      .post(\n        `${baseURL}/customer`,\n        {\n          firstName: customer.firstName,\n          lastName: customer.lastName,\n          email: customer.email,\n          address: customer.address,\n          city: customer.city,\n          state: customer.state,\n          zip: customer.zip,\n          country: customer.country,\n        },\n        {\n          headers: {\n            Authorization: token,\n            \"Content-Type\": \"application/json\",\n          },\n        }\n      )\n      .then((response) => {\n        // Handle success\n        console.log(response.data);\n      })\n      .catch((error) => {\n        // Handle errors\n        console.error(error);\n      });\n  };\n",
                "old_state": 100
            },
            "id": 62521161,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521161/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784445/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.918634+02:00",
            "action": 13,
            "target": "  const handleChange = (event) => {\n    // Update the customer state with the input value\n    const { name, value } = event.target;\n    setCustomer({ ...customer, [name]: value });\n  };\n",
            "old": "  const handleChange = (event) => {\n    // Update the customer state with the input value\n    const { name, value } = event.target;\n    setCustomer({ ...customer, [name]: value });\n  };\n",
            "details": {
                "state": 100,
                "source": "  const handleChange = (event) => {\n    // Update the customer state with the input value\n    const { name, value } = event.target;\n    setCustomer({ ...customer, [name]: value });\n  };\n",
                "old_state": 100
            },
            "id": 62521160,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521160/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784443/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.875158+02:00",
            "action": 13,
            "target": "const Checkout = () => {\n  const [customer, setCustomer] = useState({\n    firstName: \"\",\n    lastName: \"\",\n    email: \"\",\n    address: \"\",\n    city: \"\",\n    state: \"\",\n    zip: \"\",\n    country: \"\",\n  });\n",
            "old": "const Checkout = () => {\n  const [customer, setCustomer] = useState({\n    firstName: \"\",\n    lastName: \"\",\n    email: \"\",\n    address: \"\",\n    city: \"\",\n    state: \"\",\n    zip: \"\",\n    country: \"\",\n  });\n",
            "details": {
                "state": 100,
                "source": "const Checkout = () => {\n  const [customer, setCustomer] = useState({\n    firstName: \"\",\n    lastName: \"\",\n    email: \"\",\n    address: \"\",\n    city: \"\",\n    state: \"\",\n    zip: \"\",\n    country: \"\",\n  });\n",
                "old_state": 100
            },
            "id": 62521159,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521159/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784441/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.845137+02:00",
            "action": 13,
            "target": "// Checkout.js\nimport React, { useState } from \"react\";\n",
            "old": "// Checkout.js\nimport React, { useState } from \"react\";\n",
            "details": {
                "state": 100,
                "source": "// Checkout.js\nimport React, { useState } from \"react\";\n",
                "old_state": 100
            },
            "id": 62521158,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521158/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784439/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.807472+02:00",
            "action": 13,
            "target": "Create a `src` folder in the root folder of your project and add a `Checkout.js` file with the following code:",
            "old": "Create a `src` folder in the root folder of your project and add a `Checkout.js` file with the following code:",
            "details": {
                "state": 100,
                "source": "Create a `src` folder in the root folder of your project and add a `Checkout.js` file with the following code:",
                "old_state": 100
            },
            "id": 62521157,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521157/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784437/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.772375+02:00",
            "action": 13,
            "target": "<!-- index.html -->\n<html>\n  <head>\n    <title>Checkout</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"remoteEntry.js\"></script>\n  </body>\n</html>\n",
            "old": "<!-- index.html -->\n<html>\n  <head>\n    <title>Checkout</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"remoteEntry.js\"></script>\n  </body>\n</html>\n",
            "details": {
                "state": 100,
                "source": "<!-- index.html -->\n<html>\n  <head>\n    <title>Checkout</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"remoteEntry.js\"></script>\n  </body>\n</html>\n",
                "old_state": 100
            },
            "id": 62521156,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521156/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784435/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.748026+02:00",
            "action": 13,
            "target": "This code configures webpack to create a development server on port 3003 and to use Module Federation plugin to expose the Checkout PBC as a remote module with the name `checkout` and the filename `remoteEntry.js`.",
            "old": "This code configures webpack to create a development server on port 3003 and to use Module Federation plugin to expose the Checkout PBC as a remote module with the name `checkout` and the filename `remoteEntry.js`.",
            "details": {
                "state": 100,
                "source": "This code configures webpack to create a development server on port 3003 and to use Module Federation plugin to expose the Checkout PBC as a remote module with the name `checkout` and the filename `remoteEntry.js`.",
                "old_state": 100
            },
            "id": 62521155,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521155/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784433/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.708018+02:00",
            "action": 13,
            "target": "module.exports = {\n  mode: \"development\",\n  devServer: {\n    port: 3003,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: \"./public/index.html\",\n    }),\n    new ModuleFederationPlugin({\n      name: \"checkout\",\n      filename: \"remoteEntry.js\",\n      exposes: {\n        \"./Checkout\": \"./src/Checkout\",\n      },\n    }),\n  ],\n};\n",
            "old": "module.exports = {\n  mode: \"development\",\n  devServer: {\n    port: 3003,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: \"./public/index.html\",\n    }),\n    new ModuleFederationPlugin({\n      name: \"checkout\",\n      filename: \"remoteEntry.js\",\n      exposes: {\n        \"./Checkout\": \"./src/Checkout\",\n      },\n    }),\n  ],\n};\n",
            "details": {
                "state": 100,
                "source": "module.exports = {\n  mode: \"development\",\n  devServer: {\n    port: 3003,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: \"./public/index.html\",\n    }),\n    new ModuleFederationPlugin({\n      name: \"checkout\",\n      filename: \"remoteEntry.js\",\n      exposes: {\n        \"./Checkout\": \"./src/Checkout\",\n      },\n    }),\n  ],\n};\n",
                "old_state": 100
            },
            "id": 62521154,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521154/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784431/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.674618+02:00",
            "action": 13,
            "target": "To create the Checkout container application, follow these steps:",
            "old": "To create the Checkout container application, follow these steps:",
            "details": {
                "state": 100,
                "source": "To create the Checkout container application, follow these steps:",
                "old_state": 100
            },
            "id": 62521153,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521153/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784429/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.644852+02:00",
            "action": 13,
            "target": "In your terminal or command-line interface, run `npm start` to start the development server and open your browser to `http://localhost:3002`. You should see a web page with a title and an empty cart.",
            "old": "In your terminal or command-line interface, run `npm start` to start the development server and open your browser to `http://localhost:3002`. You should see a web page with a title and an empty cart.",
            "details": {
                "state": 100,
                "source": "In your terminal or command-line interface, run `npm start` to start the development server and open your browser to `http://localhost:3002`. You should see a web page with a title and an empty cart.",
                "old_state": 100
            },
            "id": 62521152,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521152/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784427/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.616630+02:00",
            "action": 13,
            "target": "This code imports React and its useState hook. It defines a Cart component that manages an array of cart items and provides functions to add, remove and calculate the total price of the items. It also renders the cart items on the web page.",
            "old": "This code imports React and its useState hook. It defines a Cart component that manages an array of cart items and provides functions to add, remove and calculate the total price of the items. It also renders the cart items on the web page.",
            "details": {
                "state": 100,
                "source": "This code imports React and its useState hook. It defines a Cart component that manages an array of cart items and provides functions to add, remove and calculate the total price of the items. It also renders the cart items on the web page.",
                "old_state": 100
            },
            "id": 62521151,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521151/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784425/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.590881+02:00",
            "action": 13,
            "target": "export default Cart;\n",
            "old": "export default Cart;\n",
            "details": {
                "state": 100,
                "source": "export default Cart;\n",
                "old_state": 100
            },
            "id": 62521150,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521150/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784423/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.554507+02:00",
            "action": 13,
            "target": "  return (\n    <div>\n      <h2>Cart</h2>\n      <ul>\n        {items.map((item) => (\n          <li key={item.id}>\n            <img src={item.image} alt={item.name} width=\"100\" />\n            <h3>{item.name}</h3>\n            <p>${item.price}</p>\n            <button onClick={() => removeFromCart(item.id)}>Remove</button>\n          </li>\n        ))}\n      </ul>\n      <p>Total: ${getTotal()}</p>\n    </div>\n  );\n};\n",
            "old": "  return (\n    <div>\n      <h2>Cart</h2>\n      <ul>\n        {items.map((item) => (\n          <li key={item.id}>\n            <img src={item.image} alt={item.name} width=\"100\" />\n            <h3>{item.name}</h3>\n            <p>${item.price}</p>\n            <button onClick={() => removeFromCart(item.id)}>Remove</button>\n          </li>\n        ))}\n      </ul>\n      <p>Total: ${getTotal()}</p>\n    </div>\n  );\n};\n",
            "details": {
                "state": 100,
                "source": "  return (\n    <div>\n      <h2>Cart</h2>\n      <ul>\n        {items.map((item) => (\n          <li key={item.id}>\n            <img src={item.image} alt={item.name} width=\"100\" />\n            <h3>{item.name}</h3>\n            <p>${item.price}</p>\n            <button onClick={() => removeFromCart(item.id)}>Remove</button>\n          </li>\n        ))}\n      </ul>\n      <p>Total: ${getTotal()}</p>\n    </div>\n  );\n};\n",
                "old_state": 100
            },
            "id": 62521149,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521149/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784421/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.523606+02:00",
            "action": 13,
            "target": "  const getTotal = () => {\n    // Calculate the total price of the cart items\n    return items.reduce((total, item) => total + parseFloat(item.price), 0);\n  };\n",
            "old": "  const getTotal = () => {\n    // Calculate the total price of the cart items\n    return items.reduce((total, item) => total + parseFloat(item.price), 0);\n  };\n",
            "details": {
                "state": 100,
                "source": "  const getTotal = () => {\n    // Calculate the total price of the cart items\n    return items.reduce((total, item) => total + parseFloat(item.price), 0);\n  };\n",
                "old_state": 100
            },
            "id": 62521148,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521148/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784419/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.488675+02:00",
            "action": 13,
            "target": "  const removeFromCart = (id) => {\n    // Remove the product from the cart items by its id\n    setItems(items.filter((item) => item.id !== id));\n  };\n",
            "old": "  const removeFromCart = (id) => {\n    // Remove the product from the cart items by its id\n    setItems(items.filter((item) => item.id !== id));\n  };\n",
            "details": {
                "state": 100,
                "source": "  const removeFromCart = (id) => {\n    // Remove the product from the cart items by its id\n    setItems(items.filter((item) => item.id !== id));\n  };\n",
                "old_state": 100
            },
            "id": 62521147,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521147/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784417/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.445456+02:00",
            "action": 13,
            "target": "  const addToCart = (product) => {\n    // Add the product to the cart items\n    setItems([...items, product]);\n  };\n",
            "old": "  const addToCart = (product) => {\n    // Add the product to the cart items\n    setItems([...items, product]);\n  };\n",
            "details": {
                "state": 100,
                "source": "  const addToCart = (product) => {\n    // Add the product to the cart items\n    setItems([...items, product]);\n  };\n",
                "old_state": 100
            },
            "id": 62521146,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521146/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784415/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.386419+02:00",
            "action": 13,
            "target": "const Cart = () => {\n  const [items, setItems] = useState([]);\n",
            "old": "const Cart = () => {\n  const [items, setItems] = useState([]);\n",
            "details": {
                "state": 100,
                "source": "const Cart = () => {\n  const [items, setItems] = useState([]);\n",
                "old_state": 100
            },
            "id": 62521145,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521145/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784413/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.349973+02:00",
            "action": 13,
            "target": "// Cart.js\nimport React, { useState } from \"react\";\n",
            "old": "// Cart.js\nimport React, { useState } from \"react\";\n",
            "details": {
                "state": 100,
                "source": "// Cart.js\nimport React, { useState } from \"react\";\n",
                "old_state": 100
            },
            "id": 62521144,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521144/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784411/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.315308+02:00",
            "action": 13,
            "target": "Create a `src` folder in the root folder of your project and add a `Cart.js` file with the following code:",
            "old": "Create a `src` folder in the root folder of your project and add a `Cart.js` file with the following code:",
            "details": {
                "state": 100,
                "source": "Create a `src` folder in the root folder of your project and add a `Cart.js` file with the following code:",
                "old_state": 100
            },
            "id": 62521143,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521143/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784409/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.282733+02:00",
            "action": 13,
            "target": "<!-- index.html -->\n<html>\n  <head>\n    <title>Cart</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"remoteEntry.js\"></script>\n  </body>\n</html>\n",
            "old": "<!-- index.html -->\n<html>\n  <head>\n    <title>Cart</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"remoteEntry.js\"></script>\n  </body>\n</html>\n",
            "details": {
                "state": 100,
                "source": "<!-- index.html -->\n<html>\n  <head>\n    <title>Cart</title>\n  </head>\n  <body>\n    <div id=\"root\"></div>\n    <script src=\"remoteEntry.js\"></script>\n  </body>\n</html>\n",
                "old_state": 100
            },
            "id": 62521142,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521142/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784407/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.244237+02:00",
            "action": 13,
            "target": "This code configures webpack to create a development server on port 3002 and to use Module Federation plugin to expose the Cart PBC as a remote module with the name `cart` and the filename `remoteEntry.js`.",
            "old": "This code configures webpack to create a development server on port 3002 and to use Module Federation plugin to expose the Cart PBC as a remote module with the name `cart` and the filename `remoteEntry.js`.",
            "details": {
                "state": 100,
                "source": "This code configures webpack to create a development server on port 3002 and to use Module Federation plugin to expose the Cart PBC as a remote module with the name `cart` and the filename `remoteEntry.js`.",
                "old_state": 100
            },
            "id": 62521141,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521141/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784405/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.202212+02:00",
            "action": 13,
            "target": "module.exports = {\n  mode: \"development\",\n  devServer: {\n    port: 3002,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: \"./public/index.html\",\n    }),\n    new ModuleFederationPlugin({\n      name: \"cart\",\n      filename: \"remoteEntry.js\",\n      exposes: {\n        \"./Cart\": \"./src/Cart\",\n      },\n    }),\n  ],\n};\n",
            "old": "module.exports = {\n  mode: \"development\",\n  devServer: {\n    port: 3002,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: \"./public/index.html\",\n    }),\n    new ModuleFederationPlugin({\n      name: \"cart\",\n      filename: \"remoteEntry.js\",\n      exposes: {\n        \"./Cart\": \"./src/Cart\",\n      },\n    }),\n  ],\n};\n",
            "details": {
                "state": 100,
                "source": "module.exports = {\n  mode: \"development\",\n  devServer: {\n    port: 3002,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: \"./public/index.html\",\n    }),\n    new ModuleFederationPlugin({\n      name: \"cart\",\n      filename: \"remoteEntry.js\",\n      exposes: {\n        \"./Cart\": \"./src/Cart\",\n      },\n    }),\n  ],\n};\n",
                "old_state": 100
            },
            "id": 62521140,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521140/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784403/?format=api",
            "component": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/module-federation-documentation-oss/module-federation-documentation-main-docs/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-08-01T16:41:28.167681+02:00",
            "action": 13,
            "target": "To create the Cart container application, follow these steps:",
            "old": "To create the Cart container application, follow these steps:",
            "details": {
                "state": 100,
                "source": "To create the Cart container application, follow these steps:",
                "old_state": 100
            },
            "id": 62521139,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521139/?format=api"
        }
    ]
}