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=79
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=80",
    "previous": "https://hosted.weblate.org/api/components/module-federation-documentation-oss/module-federation-documentation-main-docs/changes/?format=api&page=78",
    "results": [
        {
            "unit": "https://hosted.weblate.org/api/units/102784201/?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:22.485657+02:00",
            "action": 13,
            "target": "Component Level Ownership is a powerful concept that enables a federated architecture for Angular applications. It allows each application to expose and consume individual components from other applications, without requiring coordination or synchronization between teams or domains. It also reduces coupling and increases cohesion between applications, improves scalability and performance, and enhances user experience.",
            "id": 62521035,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521035/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784199/?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:22.451737+02:00",
            "action": 13,
            "target": "Use custom elements or web components to wrap standalone components and expose them as standard HTML elements. This will make them interoperable with other frameworks or vanilla JavaScript.",
            "id": 62521034,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521034/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784197/?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:22.410375+02:00",
            "action": 13,
            "target": "Use Angular's dependency injection system to provide services and configuration to components, instead of relying on global variables or constants. This will make them more testable and adaptable to different environments³.",
            "id": 62521033,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521033/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784195/?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:22.382668+02:00",
            "action": 13,
            "target": "Use Angular's built-in mechanisms to isolate and scope component styles, such as ViewEncapsulation and :host selector. This will prevent style conflicts and leakage between components.",
            "id": 62521032,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521032/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784193/?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:22.345375+02:00",
            "action": 13,
            "target": "Use Dynamic Module Federation to load remote components on demand, instead of statically importing them. This will reduce the initial bundle size and improve performance.",
            "id": 62521031,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521031/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784189/?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:22.309024+02:00",
            "action": 13,
            "target": "Use SCAM (Single Component Angular Module) pattern for shared components, which means creating a dedicated NgModule for each component that declares and exports it. This will make them easier to import and reuse by other applications.",
            "id": 62521030,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521030/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784187/?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:12.443764+02:00",
            "action": 13,
            "target": "Use standalone components that have minimal dependencies and side effects, and follow a single responsibility principle. This will make them easier to expose",
            "id": 62521021,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521021/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784185/?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:12.413719+02:00",
            "action": 13,
            "target": "There are some best practices and tools that can help us overcome these challenges and leverage Component Level Ownership effectively:",
            "id": 62521020,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521020/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784183/?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:12.380450+02:00",
            "action": 13,
            "target": "How can we overcome these challenges?",
            "id": 62521019,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521019/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784181/?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:12.354038+02:00",
            "action": 13,
            "target": "It may cause some compatibility issues or conflicts between different versions or implementations of the same component, especially if they are not properly isolated or scoped.",
            "id": 62521018,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521018/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784179/?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:12.311817+02:00",
            "action": 13,
            "target": "It introduces some complexity and overhead in the configuration and orchestration of the applications, as they need to know where and how to find and load each other's components.",
            "id": 62521017,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521017/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784177/?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:12.280866+02:00",
            "action": 13,
            "target": "It requires careful design and documentation of the exposed components, as they need to have a clear interface and contract with other applications.",
            "id": 62521016,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521016/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784175/?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:12.244815+02:00",
            "action": 13,
            "target": "Component Level Ownership also comes with some challenges that need to be addressed:",
            "id": 62521015,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521015/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784173/?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:12.211832+02:00",
            "action": 13,
            "target": "What are the challenges of Component Level Ownership?",
            "id": 62521014,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521014/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784171/?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:12.181101+02:00",
            "action": 13,
            "target": "**Performance**: With dynamic imports and lazy loading, you can optimize your application's performance by only loading the required components and their dependencies as needed.\n",
            "id": 62521013,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521013/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784169/?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:12.144197+02:00",
            "action": 13,
            "target": "**Team Collaboration**: Component Level Ownership enables better collaboration between teams by allowing them to work independently on their respective components, streamlining the development process and reducing the risk of conflicts.\n",
            "id": 62521012,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521012/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784167/?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:12.105952+02:00",
            "action": 13,
            "target": "**Maintainability**: By encapsulating the logic and dependencies of each component, you can improve code readability and maintainability, making it easier to update and refactor components as needed. Additionally, assigning ownership to individual components simplifies the process of maintaining and updating the codebase too, as it is clear who is responsible for each component.\n",
            "id": 62521011,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521011/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784165/?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:12.060450+02:00",
            "action": 13,
            "target": "**Improved Scalability**: As your application grows, Component Level Ownership allows you to maintain a modular architecture, preventing tightly-coupled dependencies and reducing complexity by breaking down an application into smaller components, so you can better allocate resources and scale your application as needed.\n",
            "id": 62521010,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521010/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784163/?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:12.026046+02:00",
            "action": 13,
            "target": "Benefits of Component Level Ownership",
            "id": 62521009,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521009/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784161/?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:11.989965+02:00",
            "action": 13,
            "target": "This configuration tells Webpack that `app2` can import modules from `app1`, which has a remote entry file at the specified URL. It also tells Webpack that both applications share some Angular modules, so they don't need to load them twice.",
            "id": 62521008,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521008/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784159/?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:11.953273+02:00",
            "action": 13,
            "target": "new ModuleFederationPlugin({\n  remotes: {\n    app1: \"app1@http://localhost:3000/remoteEntry.js\",\n  },\n  shared: [\"@angular/core\", \"@angular/common\", \"@angular/router\"],\n});\n",
            "id": 62521007,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521007/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784157/?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:11.918163+02:00",
            "action": 13,
            "target": "For example:",
            "id": 62521006,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521006/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784155/?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:11.892596+02:00",
            "action": 13,
            "target": "To make this work, `app2` also needs to configure its Webpack module federation plugin with two options: `remotes` and `shared`. The `remotes` option defines a mapping of names to URLs that point to the remote entry files of other applications. The remote entry file is a special file generated by Webpack that contains information about the exposed modules and how to load them. The `shared` option defines which modules are shared between the applications, such as vendor libraries or common dependencies.",
            "id": 62521005,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521005/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784153/?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:11.857722+02:00",
            "action": 13,
            "target": "// use Heroes component in app2\n",
            "id": 62521004,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521004/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784151/?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:11.827751+02:00",
            "action": 13,
            "target": "import { Heroes } from \"app1/Heroes\";\n",
            "id": 62521003,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521003/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784149/?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:11.794845+02:00",
            "action": 13,
            "target": "For example, another application called `app2` can import and use the `Heroes` component from `app1` like this:",
            "id": 62521002,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521002/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784147/?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:11.757951+02:00",
            "action": 13,
            "target": "This configuration tells Webpack that `app1` exposes two components: `Heroes` and `Villains`, which are located in the specified files. These components can be imported by other applications using the syntax `app1/ComponentName`, where `app1` is the name of the application and `ComponentName` is the key of the component in the `exposes` option.",
            "id": 62521001,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521001/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784145/?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:11.716963+02:00",
            "action": 13,
            "target": "new ModuleFederationPlugin({\n  name: \"app1\",\n  exposes: {\n    \"./Heroes\": \"./src/app/heroes/heroes.component.ts\",\n    \"./Villains\": \"./src/app/villains/villains.component.ts\",\n  },\n});\n",
            "id": 62521000,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62521000/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784143/?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:11.667229+02:00",
            "action": 13,
            "target": "To achieve Component Level Ownership, each application needs to configure its Webpack Module Federation plugin with two options: `name` and `exposes`. The `name` option defines the unique identifier of the application, which will be used by other applications to reference it. The `exposes` option defines a mapping of keys to local files that contain the components to be exposed. For example:",
            "id": 62520999,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520999/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784141/?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:11.627642+02:00",
            "action": 13,
            "target": "Implementing Component Level Ownership",
            "id": 62520998,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520998/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784139/?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:11.594122+02:00",
            "action": 13,
            "target": "import CartModal from \"checkoutTeam/components/cart-modal\"\n",
            "id": 62520997,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520997/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784137/?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:11.557959+02:00",
            "action": 13,
            "target": "With Module Federation this is achievable at runtime in a very convenient way:",
            "id": 62520996,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520996/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784135/?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:11.520349+02:00",
            "action": 13,
            "target": "A good example of this would be the `checkout` team, they own everything around cart, payment, and quantities. A different team owns the `shop` experience, but that app needs an \"add to cart\" modal. Before federation, this meant old-school npm packages for the shared part or literally having to PR some component you own in someone else's app.",
            "id": 62520995,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520995/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784133/?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:11.485659+02:00",
            "action": 13,
            "target": "By leveraging Component Level Ownership, teams can work on different parts of the application simultaneously, enabling faster development cycles and increased agility.",
            "id": 62520994,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520994/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784131/?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:11.447134+02:00",
            "action": 13,
            "target": "Component Level Ownership is a design pattern that allows individual components to be owned, managed, and versioned independently within a federated architecture. This approach empowers developers to create more maintainable and scalable applications by encapsulating the logic and dependencies of each component, reducing the risk of conflicts and promoting better collaboration.",
            "id": 62520993,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520993/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784129/?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:11.396454+02:00",
            "action": 13,
            "target": "Introduction to Component Level Ownership",
            "id": 62520992,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520992/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784127/?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:11.364981+02:00",
            "action": 13,
            "target": "In this guide, we will delve into the concept of Component Level Ownership in the context of Module Federation, a feature introduced in Webpack 5. You will learn how this ownership model works, its benefits, and how to implement it within your projects.",
            "id": 62520991,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520991/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784125/?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:11.333739+02:00",
            "action": 13,
            "target": "Module Federation: Component Level Ownership",
            "id": 62520990,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520990/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784123/?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:11.297463+02:00",
            "action": 13,
            "target": "Ultimately, the decision between Brownfield and Greenfield development depends on your project's unique requirements and constraints. Carefully consider the advantages and challenges of each approach and adopt best practices to maximize the benefits of implementing Module Federation in your applications. With a thoughtful strategy in place, you can harness the power of Module Federation to create efficient, high-performance distributed systems.",
            "id": 62520989,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520989/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784121/?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:11.264952+02:00",
            "action": 13,
            "target": "On the other hand, if you're starting a new project and want to build an application optimized for Module Federation from the outset, Greenfield development might be the better option. This approach allows you to create an architecture that fully leverages Module Federation capabilities while ensuring easier dependency management.",
            "id": 62520988,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520988/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784119/?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:11.232277+02:00",
            "action": 13,
            "target": "For existing applications that could benefit from Module Federation, Brownfield development may be the most suitable approach. However, be prepared for potential refactoring and architectural changes.",
            "id": 62520987,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520987/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784117/?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:11.200487+02:00",
            "action": 13,
            "target": "Both Brownfield and Greenfield development approaches offer unique advantages and challenges when implementing Module Federation in your projects. The right choice for your project depends on your specific needs, resources, and goals.",
            "id": 62520986,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520986/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784115/?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:11.165602+02:00",
            "action": 13,
            "target": "Maintain simplicity: Avoid over-complicating your application design to maximize the benefits of Module Federation. Focus on simplicity and maintainability.",
            "id": 62520985,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520985/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784113/?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:11.125935+02:00",
            "action": 13,
            "target": "Design with scalability in mind: Ensure that your application architecture is flexible and scalable, allowing you to take full advantage of Module Federation as your project grows.",
            "id": 62520984,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520984/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784111/?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:11.091805+02:00",
            "action": 13,
            "target": "Establish clear goals: Clearly define the objectives for your Greenfield project, including the expected benefits of implementing Module Federation.",
            "id": 62520983,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520983/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784108/?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:11.055697+02:00",
            "action": 13,
            "target": "Potential for over-optimization: In an effort to fully leverage Module Federation, you might over-optimize the architecture, which could lead to unnecessary complexity.",
            "id": 62520982,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520982/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784105/?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:11.028548+02:00",
            "action": 13,
            "target": "Uncertain ROI: As you're starting with a new application, it may be difficult to estimate the exact return on investment (ROI) of implementing Module Federation.",
            "id": 62520977,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520977/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784103/?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:10.991562+02:00",
            "action": 13,
            "target": "Faster implementation: Since you're starting from scratch, there's no need to refactor existing code, reducing potential complexity.",
            "id": 62520976,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520976/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784101/?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:10.959785+02:00",
            "action": 13,
            "target": "Easier dependency management: Plan and manage dependencies with Module Federation in mind, ensuring compatibility and consistency across your application.",
            "id": 62520975,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520975/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/102784099/?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:10.929490+02:00",
            "action": 13,
            "target": "Optimized architecture: Design your application architecture to fully leverage Module Federation from the start, maximizing its benefits.",
            "id": 62520974,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/62520974/?format=api"
        }
    ]
}