Skip to content

Code Quality: Refactored command titles and descritption for clarity and consistency #17146

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
100 changes: 50 additions & 50 deletions src/Files.App/Strings/en-US/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@
<value>Copy path with quotes</value>
</data>
<data name="CopyItemPathWithQuotes" xml:space="preserve">
<value>Copy selected item path with quotes</value>
<value>Copy item path with quotes</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

selected helps provide a contrast with the action to copy the path of the current location.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see what you mean. I removed the word "selected" because it wasn't useful to me. Also, the subtitle is there to properly describe the action, where it was correctly mentioned that it was only the selected item, and to shorten the title.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To reemphasize, Actions don't have subtitles. This is the label used in tooltips (if we ever expose this option on the toolbar).

</data>
<data name="Browse" xml:space="preserve">
<value>Browse</value>
Expand Down Expand Up @@ -1086,13 +1086,13 @@
<value>Toggle the details pane to view basic file properties</value>
</data>
<data name="ToggleInfoPane" xml:space="preserve">
<value>Toggle the info pane</value>
<value>Info pane</value>
</data>
<data name="ToggleInfoPaneDescription" xml:space="preserve">
<value>Toggle the info pane to view the detail/preview panes</value>
<value>Toggle visibility of the detail/preview panes</value>
</data>
<data name="ToggleToolbar" xml:space="preserve">
<value>Toggle toolbar</value>
<value>Toolbar</value>
</data>
<data name="ToggleToolbarDescription" xml:space="preserve">
<value>Toggle visibility of the toolbar</value>
Expand Down Expand Up @@ -1917,7 +1917,7 @@
<value>Extract</value>
</data>
<data name="ExtractFiles" xml:space="preserve">
<value>Extract files</value>
<value>Extract items</value>
</data>
<data name="ExtractHere" xml:space="preserve">
<value>Extract here</value>
Expand Down Expand Up @@ -2205,10 +2205,10 @@
<value>Recently used files is currently disabled in Windows File Explorer.</value>
</data>
<data name="EditSettingsFile" xml:space="preserve">
<value>Edit settings file</value>
<value>Edit configuration file</value>
</data>
<data name="EditSettingsFileDescription" xml:space="preserve">
<value>Open settings file in your default editor</value>
<value>Open the configuration file in a text editor</value>
Copy link
Member

@yaira2 yaira2 May 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you share info on the change from 'settings' to 'configuration'? I would also avoid the term 'a text editor' considering the file is not a text file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We switched from "settings" to "configuration" because "configuration file" is the more common and precise term in technical contexts.
"Settings" usually refers to individual options or UI menus, while "configuration" covers the whole structure that defines how a system or program behaves.
Since we're talking about a file that controls the behavior of the application, "configuration file" felt more appropriate.
But I can revert "in a text editor" to return to "in your default editor".

</data>
<data name="ReleaseNotes" xml:space="preserve">
<value>Release Notes</value>
Expand All @@ -2229,7 +2229,7 @@
<value>Settings</value>
</data>
<data name="DoubleClickBlankSpaceToGoUp" xml:space="preserve">
<value>Double click on a blank space to go up one directory</value>
<value>Double-click blank space to navigate one level up the folder tree</value>
</data>
<data name="ViewMore" xml:space="preserve">
<value>View more</value>
Expand Down Expand Up @@ -2385,25 +2385,25 @@
<value>Preview popup</value>
</data>
<data name="ToggleCompactOverlay" xml:space="preserve">
<value>Toggle compact overlay</value>
<value>Compact overlay</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about compact overlay? 'Toggle' seems more appropriate.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is simply the title of the action, and for me, it is enough to put "Compact Overlay", because "Toggle" does not give more information about the state of the mode. Also, since I removed it from the title, I left it in the subtitle to avoid repeating "Toggle" in the title and subtitle.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'Compact Overlay' sounds like it's switching to Compact Overlay.

left it in the subtitle to avoid repeating "Toggle" in the title and subtitle.

As mentioned earlier, we don't have subtitles.

</data>
<data name="OpenHelpDescription" xml:space="preserve">
<value>Open the online help page in your browser</value>
</data>
<data name="ToggleFullScreenDescription" xml:space="preserve">
<value>Toggle full screen mode</value>
<value>Toggle between full screen mode</value>
</data>
<data name="EnterCompactOverlayDescription" xml:space="preserve">
<value>Enter compact overlay mode</value>
<value>Switch to compact overlay mode</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is good in theory, but it would be best to revert for consistency with 'Exit compact overlay'.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but this is consistent with "switch to normal overlay mode"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My view is that both should be reverted.

</data>
<data name="ExitCompactOverlayDescription" xml:space="preserve">
<value>Exit compact overlay mode</value>
<value>Switch to normal overlay mode</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The app is either in "compact overlay mode' or not, 'normal overlay' isn't a mode.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the name of the mode when compact mode is not enabled? In this case, it is better to give it a name rather than saying "or not."

Copy link
Member

@yaira2 yaira2 May 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't really have a name, the window is either in the Compact Overlay state or not. The closest I can think of is 'Regular mode' of 'Full mode', but that doesn't really provide a lot of context.

</data>
<data name="ToggleCompactOverlayDescription" xml:space="preserve">
<value>Toggle compact overlay mode</value>
</data>
<data name="SearchDescription" xml:space="preserve">
<value>Start search in the OmniBar</value>
<value>Start a search in the OmniBar</value>
</data>
<data name="ToggleShowHiddenItemsDescription" xml:space="preserve">
<value>Toggle visibility of hidden items</value>
Expand All @@ -2421,7 +2421,7 @@
<value>Toggle whether to show sidebar</value>
</data>
<data name="CopyItemDescription" xml:space="preserve">
<value>Copy selected {0, plural, one {item} other {items}} to clipboard</value>
<value>Copy selected {0, plural, one {item} other {items}} to the clipboard</value>
</data>
<data name="CopyPathDescription" xml:space="preserve">
<value>Copy path of the current directory to the clipboard</value>
Expand All @@ -2436,16 +2436,16 @@
<value>Copy path of the current directory with quotes to the clipboard</value>
</data>
<data name="CutItemDescription" xml:space="preserve">
<value>Cut selected {0, plural, one {item} other {items}} to clipboard</value>
<value>Cut selected {0, plural, one {item} other {items}} to the clipboard</value>
</data>
<data name="PasteItemDescription" xml:space="preserve">
<value>Paste clipboard items to the current folder</value>
<value>Paste clipboard items into the current folder</value>
</data>
<data name="PasteShortcutDescription" xml:space="preserve">
<value>Paste clipboard items to the current folder as shortcuts</value>
<value>Paste clipboard items into the current folder as shortcuts</value>
</data>
<data name="PasteItemToSelectionDescription" xml:space="preserve">
<value>Paste clipboard items to the selected folder</value>
<value>Paste clipboard items into the selected folder</value>
</data>
<data name="PasteToSelectedFolder" xml:space="preserve">
<value>Paste to selected folder</value>
Expand Down Expand Up @@ -2475,7 +2475,7 @@
<value>Restore all items from recycle bin</value>
</data>
<data name="OpenItemDescription" xml:space="preserve">
<value>Open {0, plural, one {item} other {items}}</value>
<value>Open {0, plural, one {the selected item} other {selected items}}</value>
</data>
<data name="OpenItemWithApplicationPickerDescription" xml:space="preserve">
<value>Open {0, plural, one {item} other {items}} with selected application</value>
Expand All @@ -2487,10 +2487,10 @@
<value>Refresh page contents</value>
</data>
<data name="RenameDescription" xml:space="preserve">
<value>Rename selected item</value>
<value>Change the name of the selected item</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We've been using the term 'Rename' since that start of Files.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea behind all these changes, as I explained earlier, is to avoid having an identical title and subtitle. So I understand that some sentences could be simplified, but otherwise, it would be pointless to have a title and subtitle containing the same sentence.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above, that said, we don't need duplicate strings in the resource file. If there are any duplicates, we can remove the extra one and reuse the string.

</data>
<data name="SelectAllDescription" xml:space="preserve">
<value>Select all items</value>
<value>Select all items in the current view</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this any clearer than 'Select all items'?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the same thing. This is to add more precision because last time, my grandmother thought she had selected all the files from the root of her key and told me that it would be better to put "in the current view" (and to avoid repetition with the title so I thought that in passing I could add precision to the description)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we move forward with the change, it will need to update based on the context (eg. pane, column).

</data>
<data name="InvertSelectionDescription" xml:space="preserve">
<value>Invert selected items</value>
Expand All @@ -2499,7 +2499,7 @@
<value>Clear selected items</value>
</data>
<data name="ToggleSelectDescription" xml:space="preserve">
<value>Toggle item selection</value>
<value>Change selection of the focused item</value>
</data>
<data name="ShareItemDescription" xml:space="preserve">
<value>Share selected {0, plural, one {file} other {files}} with others</value>
Expand Down Expand Up @@ -2556,7 +2556,7 @@
<value>Run selected PowerShell script</value>
</data>
<data name="LaunchPreviewPopupDescription" xml:space="preserve">
<value>Launch preview in popup window</value>
<value>Show item preview in a popup window</value>
</data>
<data name="CompressIntoArchiveDescription" xml:space="preserve">
<value>Create archive with selected {0, plural, one {item} other {items}}</value>
Expand All @@ -2583,19 +2583,19 @@
<value>Rotate selected {0, plural, one {image} other {images}} to the right</value>
</data>
<data name="OpenSettingsDescription" xml:space="preserve">
<value>Open settings page</value>
<value>Open the application settings page</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the term 'application' helpful? Perhaps 'Open the settings page' would be better.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is more specific as it can be confusing with Windows Settings, as Windows is often mentioned in the app from what I've seen.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to check that, do you remember where it is mentioned?

</data>
<data name="OpenTerminalDescription" xml:space="preserve">
<value>Open folder in terminal</value>
<value>Open folder in Windows Terminal</value>
</data>
<data name="OpenTerminalAsAdminDescription" xml:space="preserve">
<value>Open folder in terminal as administrator</value>
<value>Open folder in Windows Terminal with administrator rights</value>
</data>
<data name="LayoutDecreaseSizeDescription" xml:space="preserve">
<value>Decrease item size in the current view</value>
<value>Reduce the icon or item size in view</value>
Copy link
Member

@yaira2 yaira2 May 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'Decrease' and 'Increase' seem to be more commonly used for these scenarios.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without context - the words "reduce size" go really well together. Just saying 😬

</data>
<data name="LayoutIncreaseSizeDescription" xml:space="preserve">
<value>Increase item size in the current view</value>
<value>Enlarge the icon or item size in view</value>
</data>
<data name="LayoutDetailsDescription" xml:space="preserve">
<value>Switch to details view</value>
Expand All @@ -2619,7 +2619,7 @@
<value>Switch to columns view</value>
</data>
<data name="LayoutAdaptiveDescription" xml:space="preserve">
<value>Switch views adaptively</value>
<value>Switch to adjusting layout </value>
</data>
<data name="SortByNameDescription" xml:space="preserve">
<value>Sort items by name</value>
Expand Down Expand Up @@ -2700,19 +2700,19 @@
<value>Toggle group sort direction</value>
</data>
<data name="NewTabDescription" xml:space="preserve">
<value>Open a new tab</value>
<value>Open a new tab in the same window</value>
</data>
<data name="NavigateBackDescription" xml:space="preserve">
<value>Navigate backward</value>
<value>Navigate to the previous location</value>
</data>
<data name="NavigateForwardDescription" xml:space="preserve">
<value>Navigate forward</value>
<value>Navigate to the next location</value>
</data>
<data name="NavigateUpDescription" xml:space="preserve">
<value>Navigate up one directory</value>
<value>Navigate one level up in the folder tree</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Jay-o-Way Navigate one level up in the folder tree vs Navigate one level up the folder tree?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, tricky one, mostly looking at "navigate". That one is often used for websites and such. Simply saying "move one level up" sounds smoother. As for "in" or not, i would personally leave it out. Thinking of phrases like "move up a ladder".

In case of doubt, search MS Learn.

https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/f/folder-folder-icon
https://learn.microsoft.com/en-us/style-guide/procedures-instructions/describing-interactions-with-ui

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We've been using the term 'navigate' for quite some time, so I'm not concerned about that part.

</data>
<data name="DuplicateCurrentTabDescription" xml:space="preserve">
<value>Duplicate current tab</value>
<value>Duplicate the current tab</value>
</data>
<data name="DuplicateSelectedTabDescription" xml:space="preserve">
<value>Duplicate selected tab</value>
Expand All @@ -2736,19 +2736,19 @@
<value>Close tabs other than selected tab</value>
</data>
<data name="CloseAllTabsDescription" xml:space="preserve">
<value>Close all tabs including the current tab</value>
<value>Close all open tabs including the current tab</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'Open' seems a bit redundant as you can't close a tab that's already closed 🙂

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By extent: "all" logically includes "current" tab 🤓

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Jay-o-Way true, however this is to provide contrast with a similar action that does not close the current tab.

</data>
<data name="ReopenClosedTabDescription" xml:space="preserve">
<value>Reopen recently closed tab</value>
<value>Reopen the last closed tab</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This action isn't limited to the last tab.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but you won't open multiple tabs at once, only the last one. To reopen the last three, for example, run the action three times.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, however the last closed tab was already reopened.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but we can't open a tab that is already open

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'Last' seems to imply that after using the action once, it won't be available unless the user closes another tab. 'Recently' isn't perfect, but I don't feel that 'Last' is better for this.

</data>
<data name="PreviousTabDescription" xml:space="preserve">
<value>Move to the previous tab</value>
<value>Switch to the previous tab</value>
</data>
<data name="NextTabDescription" xml:space="preserve">
<value>Move to the next tab</value>
<value>Switch to the next tab</value>
Comment on lines +2745 to +2748
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not against these two changes, but they seem to be very similar to the existing strings. Is it worth resetting the translations for essentially the same string?

Copy link
Contributor

@Jay-o-Way Jay-o-Way Jun 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually go to is even better. "Switch" sounds like a setting or a control. https://learn.microsoft.com/en-us/style-guide/procedures-instructions/describing-interactions-with-ui

</data>
<data name="CloseSelectedTabDescription" xml:space="preserve">
<value>Close current tab</value>
<value>Close the current tab</value>
</data>
<data name="CloseActivePaneDescription" xml:space="preserve">
<value>Close the active pane</value>
Expand Down Expand Up @@ -3001,7 +3001,7 @@
<value>Show checkboxes when selecting items</value>
</data>
<data name="EditPathDescription" xml:space="preserve">
<value>Edit path in the OmniBar</value>
<value>Edit the current folder path in the OmniBar</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding this comment for future reference (I need to think about this change);

</data>
<data name="AddItemDescription" xml:space="preserve">
<value>Create new item</value>
Expand All @@ -3016,16 +3016,16 @@
<value>Delete permanently</value>
</data>
<data name="DeleteItemPermanentlyDescription" xml:space="preserve">
<value>Delete selected {0, plural, one {item} other {items}} permanently</value>
<value>Delete selected {0, plural, one {item} other {items}} without recovery</value>
Copy link
Member

@yaira2 yaira2 Jun 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lukiluc29 is there any reason to avoid the word 'permanently'? It accurately describes the operation and is consistent with the terminology in File Explorer.

</data>
<data name="PlayAllDescription" xml:space="preserve">
<value>Play the selected media files</value>
</data>
<data name="UndoDescription" xml:space="preserve">
<value>Undo the last file operation</value>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought undo and redo were pretty common words.

Copy link
Member

@yaira2 yaira2 Jun 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, undo and redo are commonly used.

<value>Revert the last file operation</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<value>Revert the last file operation</value>
<value>Undo the last file operation</value>

</data>
<data name="RedoDescription" xml:space="preserve">
<value>Redo the last file operation</value>
<value>Repeat the last file operation</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<value>Repeat the last file operation</value>
<value>Redo the last file operation</value>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In other words "undo" 😆

</data>
<data name="Location" xml:space="preserve">
<value>Location:</value>
Expand Down Expand Up @@ -3139,10 +3139,10 @@
<value>Properties</value>
</data>
<data name="OpenClassicProperties" xml:space="preserve">
<value>Open File Explorer properties</value>
<value>File Explorer properties</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per @Jay-o-Way, this should start with 'Open'.

</data>
<data name="OpenPropertiesDescription" xml:space="preserve">
<value>Open properties window</value>
<value>Open the properties window for selected item</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for selected item

It's a little more complex. This action also works when no items are selected, and it also works when multiple items are selected. We can make the text contextual in the future, but it's out of scope for this PR. For now, I would keep the added 'the' but remove 'for selected item'

</data>
<data name="OpenClassicPropertiesDescription" xml:space="preserve">
<value>Open File Explorer properties window</value>
Expand Down Expand Up @@ -3330,7 +3330,7 @@
<value>Command Palette</value>
</data>
<data name="OpenCommandPaletteDescription" xml:space="preserve">
<value>Open Command Palette in the OmniBar</value>
<value>Open the Command Palette in the OmniBar</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Jay-o-Way any thoughts?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good one

</data>
<data name="ShortcutItemWorkingDir" xml:space="preserve">
<value>Start in:</value>
Expand Down Expand Up @@ -3788,7 +3788,7 @@
<value>Scroll to previous folder when navigating up</value>
</data>
<data name="NewWindowDescription" xml:space="preserve">
<value>Open new window</value>
<value>Open a new window instance</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instance is a bit redundant. I'm not against adding 'a', but it's worth considering that this will reset existing translations, and it might be best to just keep the current string.

</data>
<data name="ChangeAlbumCover" xml:space="preserve">
<value>Change album cover</value>
Expand Down Expand Up @@ -4019,13 +4019,13 @@
<value>Vertical pane</value>
</data>
<data name="AddVerticalPaneDescription" xml:space="preserve">
<value>Add vertical pane</value>
<value>Add a vertical split pane</value>
</data>
<data name="AddHorizontalPane" xml:space="preserve">
<value>Horizontal pane</value>
</data>
<data name="AddHorizontalPaneDescription" xml:space="preserve">
<value>Add horizontal pane</value>
<value>Add a horizontal split pane</value>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'Horizonal' refers to the arrangement/orientation of the panes, we should avoid the term 'split' to prevent confusion.

</data>
<data name="ArrangePanesVertically" xml:space="preserve">
<value>Arrange vertically</value>
Expand Down Expand Up @@ -4226,4 +4226,4 @@
<data name="OmnibarSearchModeTextPlaceholder" xml:space="preserve">
<value>Search for files and folders...</value>
</data>
</root>
</root>