The folder contains extensions which use in the description.xml the following:
-The <display-name> element
The element contains localized child elements. 

To test the display name in the update dialog use the extensions in 
desktop/test/deployment/update/simple


The following table shows what localized item is used, when the Office the locale 
en-US uses.


Localization:

Installed office: en-US
          | publisher     | release notes
=============================================
name1.oxt | en-US         | en-US
--------------------------------------------- 
name2.oxt | en-US-region1 | en-US-region1
---------------------------------------------
name3.oxt | en            | en
---------------------------------------------
name4.oxt | en-GB         | en-GB
---------------------------------------------
name5.oxt | de            | de
