# Adding additional language support

## Update the Client-side script

The client-side script detects cumulative updates for Windows by searching for a match against a specific string. In English, that string is '**Cumulative Update for**'. In other display languages, this string may be different.

There are a couple of ways you can find this string. On a workstation, search in the **System** event log for the following event and find one that mentions the installation of a Cumulative Update for Windows. This will be reported differently for other languages, for example in German the string is reported as '**Kumulatives Update für**' and in Italian '**Aggiornamento cumulativo di**'.

<figure><img src="https://3886807721-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWe9ieepRHnj7T8odXt%2Fuploads%2F6wjDuS1CFRivWEee64pU%2Fimage.png?alt=media&#x26;token=7045fa49-5d16-46be-8aef-71348c6a52a2" alt=""><figcaption></figcaption></figure>

Alternatively you can search the log analytics workspace using a query like the following:

```kusto
SU_UpdateLog_CL 
| where UpdateName_s contains 'umulati'
| distinct UpdateName_s,UpdateType_s 
```

In the results of that query, I can locate the string used in German, for example:

<figure><img src="https://3886807721-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWe9ieepRHnj7T8odXt%2Fuploads%2FMJZSIXa5dh62lKcgSzZJ%2Fimage.png?alt=media&#x26;token=b4d93e5b-e64c-40df-a955-30cfa4b014ed" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
You do not need the entire update name, just the equivalent of "**Cumulative Update for**" in that language.
{% endhint %}

In the client-side script, you need to make updates in **two** places. Search for the variable **$CUNameArray**. The first is found on line **194** within the **Get-AvailableUpdatesOnline** function. Add your language string to this array.

<figure><img src="https://3886807721-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWe9ieepRHnj7T8odXt%2Fuploads%2FlaItwn8siNruO5rkqt8T%2Fimage.png?alt=media&#x26;token=1f343842-3a8d-4f0c-8461-efa471fc80dc" alt=""><figcaption></figcaption></figure>

The second is found on line **644** in the **UpdateLog** code region. Do the same thing and add your language string to this array.

<figure><img src="https://3886807721-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWe9ieepRHnj7T8odXt%2Fuploads%2F7VhSqGMOFo6U530VFjQM%2Fimage.png?alt=media&#x26;token=ef6e0723-a1ee-4836-af37-14279246a9d6" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Don't forget to redeploy the script to your workstations after making these changes!
{% endhint %}

## Update the Summarizer automation runbook

The **Software\_Updates\_Reporting\_Summarizer** runbook determines some installation states (ie **started** and **failed**) for the current monthly security quality update by checking for the status as reported in the Windows event log. In English, these installation states are '**Installation started**' and '**Installation failed**' but in other languages, they may be different.

The best way to find what they are reported as in other languages is to run the following query against the log analytics workspace:

```kusto
SU_UpdateLog_CL 
| distinct KeyWord1_s,KeyWord2_s
```

Make sure the **time range** of your query is sufficiently long enough to return lots of data.

In the query results, I can clearly see these installation states reported in other languages as well as English:

<figure><img src="https://3886807721-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWe9ieepRHnj7T8odXt%2Fuploads%2F48y9GZECEnBJEdIBiZSW%2Fimage.png?alt=media&#x26;token=49aa432a-f6ea-41d8-be40-4a0d91edecc8" alt=""><figcaption></figcaption></figure>

For example, **Installation** in Italian is **Installazione**, and **Started** is **Avviato**.

In the Azure automation runbook, locate the **Language arrays** section within the **CalculateBStatus** code region, beginning line **1736**.

In these arrays, add the language equivalents of **Installation**, **Failure** and **Started**, as shown below:

<figure><img src="https://3886807721-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWe9ieepRHnj7T8odXt%2Fuploads%2FKFJwqavF0EmfECpW9Cho%2Fimage.png?alt=media&#x26;token=419ae009-11d6-4f2a-a1f0-d9ff7b1da979" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Don't forget to save and publish your runbook when finished!
{% endhint %}
