I added this line just before Application.Run(new MainForm()); in Word-inspired project:
RichTextBoxLocalizationProvider.CurrentProvider = RichTextBoxLocalizationProvider.FromFile(@
"AllCapsRichTextBoxStrings.xml"
);
I took RichTextBoxStrings.xml from localization page of RichTextEditor. In the xml file I converted all the text between <value> tags to uppercase, and also replaced "OK" (value of "Confirm" data element) with "AYE". I expected all the OK's in all the forms within rich text editor to be replaced, but they all remained as "Ok" (note the lower case "k" here). Well, all except Page Layout > Columns form, which did display AYE, and also References > Insert citation. So, here are the issues that I found:
- XML file in localizaiton page of RichTextEditor is missing entries for resources "Ok", "Insert", and "Apply".
- "Ok" resource is used in most places, but "Confirm" resource (with value "OK") is used in AddNewBibliographicSourceDialog.cs and SectionColumns\SectionColumnsDialog.cs. This seems inconsistent.
- Paper sizes are not localizable, which is actually fine by me for all but the last paper size, "Size14x10", but then what is the purpose of all RibbonUI_PaperSizeXxx resources in resource file?
- Value of resource "Documents_InsertHyperlinkDialog_SelectionInDocument" is weird. Not sure this resource should even exist, as I could not make it appear in the InsertHyperlinkDialog. Looks like a dummy placeholder.
- Fallback mechanism for missing resources is weird. If resource is missing the resource name is returned as resource value, which is the reason why Ok, Insert, and Apply are actually shown. Maybe this is intentional, if resource is missing it will be obvious (for unusual resource names). Alternative would be not to change the string at all, as it is already set to default english in .Designer.cs file anyway. So instead of "this.someTextBox.Text = LocalizationManager.GetString("Some_Resource");" it would be something like "this.someTextBox.Text = LocalizationManager.GetString("Some_Resource", this.someTextBox.Text);".
To create AllCapsRichTextBoxStrings.xml, make a copy of provided resource file, open it in Notepad++ and replace all <value>([^<]*)</value> with <value>\U\1\E</value> using regular expressions, and then replace all &, < and > with &, < and >.