# Localization

## Content

`C1.Blazor.FlexGrid` supports localization through resource files. Default resources provide translations for supported cultures. If a culture is not fully supported, or if an application needs to override existing translations, custom translations can be added through culture-specific `.resx` files embedded in the application.
For example, an application can provide Danish translations by adding the required `Resources.da.resx` files. Because `FlexGrid` UI can use strings from more than one ComponentOne assembly, custom translations may be required for each assembly that contributes localized text.

***

## Add Custom Resource Files

To add custom localization for `FlexGrid`:

1. Create the required `.resx` files for the target culture.
2. Use the same file names and folder structure as the corresponding ComponentOne resources.
3. Set the build action for each file to `Embedded Resource`.

![C1Blazor Localization - Adding custom resource.da.resx to a project](https://cdn.mescius.io/document-site-files/images/f5b600ba-f1a7-4f89-a20c-aa6c0c35880d/image-20261006.3185b9.png?caption=Adding%20Custom%20Resource)

5. Add the required translated strings.
6. Set the application culture to the target culture.
7. Build and run the application.

When correctly named application resource files are present, they are used before the default resources embedded in the ComponentOne assemblies.

***

## Resource File Structure

Custom resource files can use the same folder structure and file names as the default ComponentOne resources. They can also be added as a flat file list if the full namespace is included in the file name.
For example:

```auto
C1.Blazor.Grid.Resources.Resources.da.resx
```

The exact file name depends on the resource set used by the target assembly.

### Related Resource Files

`FlexGrid` UI can use localized strings from more than one ComponentOne assembly.
For example, a column options menu can include strings from both `C1.Blazor.Grid` and `C1.Blazor.DataFilter`. If part of the UI comes from another component, the corresponding resource file must also be added for that assembly.

***

## Limitations

| Limitation | Description |
| ---------- | ----------- |
| Resource names must match expected structure | Incorrect file names or folder layout prevent custom resources from loading |
| Localization depends on active culture | Custom resources are used only when the matching culture is active |
