.NET RESX — composite format strings (Arabic (Egypt))
A Arabic (Egypt) resource file built around composite format strings — {0:N2}, {2:P1}, {0:C}, {0:d} and {0:t} — whose rendered output depends entirely on CultureInfo. Includes a whitespace-significant resource guarded by xml:space, and documents the suffixed-key convention .NET falls back on because String.Format has no plural selector.
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true" />
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<!-- Arabic (Egypt) (ar-EG) -->
<data name="BrowserTitle" xml:space="preserve">
<value>الملفات</value>
<comment>Window title for the file browser</comment>
</data>
<data name="MoveToTrash" xml:space="preserve">
<value>نقل إلى سلة المهملات</value>
<comment>Context-menu item</comment>
</data>
<data name="MoveConfirm" xml:space="preserve">
<value>نقل {0} إلى {1}؟</value>
<comment>{0} source name, {1} destination name</comment>
</data>
<data name="ReplaceConfirm" xml:space="preserve">
<value>استبدال {0} بـ {1}؟</value>
<comment>Arabic question mark U+061F ends the line</comment>
</data>
<data name="QuotaUsed" xml:space="preserve">
<value>تم استخدام {0:N2} جيجابايت من {1:N2} جيجابايت ({2:P1})</value>
<comment>N2 uses Arabic-Indic digits when the culture's native digits are on</comment>
</data>
<data name="InvoiceTotal" xml:space="preserve">
<value>الإجمالي: {0:C}</value>
<comment>ar-EG currency is EGP</comment>
</data>
<data name="LastSynced" xml:space="preserve">
<value>آخر مزامنة {0:d} في {0:t}</value>
<comment>RTL paragraph containing LTR-ish digits</comment>
</data>
<data name="FileCount_One" xml:space="preserve">
<value>ملف واحد</value>
<comment>Arabic needs SIX keys, not two — see the note resource</comment>
</data>Specifications
- Format
- .NET RESX (XML resource)
- Culture
- ar-EG
- Resources
- 11
- Format Specifiers
- N2, P1, C, d, t
- Plural Convention
- suffixed keys (_One/_Other) — .NET has no plural selector
- Whitespace Resource
- ListSeparator (xml:space="preserve")
- Role
- satellite
- Seed
- 20260807
- Wave
- p7
- Line Endings
- LF
Testing contract
Expected to pass- Scenario
- Load as a neutral or satellite resource and format each entry under CultureInfo("ar-EG").
- Expected result
- N2 and C render with this culture's separators and currency, d and t with its date and time patterns, and ListSeparator keeps its trailing space. The PluralConventionNote resource states how many plural keys the language actually needs — two for English, four for Polish, six for Arabic.
What is a .resx file?
.resx is a .NET XML resource file that stores localizable strings (and other resources) as name/value data elements, with a standard header block declaring the ResX schema and reader/writer types. Per-culture files like Resources.es.resx provide translations that the .NET runtime resolves by culture.
How to use this file
Use an example .resx file to test .NET resource parsers, Visual Studio resource editors, RESX-to-other-format converters, and satellite-assembly localization tooling.
How to use this file for testing
“.NET RESX — composite format strings (Arabic (Egypt))” is a deterministic Novus Examples fixture for Internationalization, Localization catalogs, Config parsing. Parallel text and accented, multi-script content — for testing translation pipelines, Unicode handling, and localization tooling.
Documented properties for this file: seed 20260807 · satellite · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Translation-catalog fixtures carry the same message set across formats, each with its native placeholder syntax. Test your i18n loader, catalog converter, or translation-memory tool, and use the RTL and CJK variants to check bidirectional text and Unicode handling.
Load the catalog with your i18n framework and verify placeholder interpolation and plural handling; the RTL and CJK variants exercise bidirectional text and font fallback.
Code examples
import xml.etree.ElementTree as ET
root = ET.parse("Formats.ar-EG.resx").getroot()
for d in root.findall("data"):
print(d.get("name"), "->", d.findtext("value"))Related files
- propertiesJava ResourceBundle .properties — EnglishA English Java ResourceBundle with MessageFormat patterns, a ChoiceFormat plural, positional arguments, escaped braces and apostrophes, a backslash line continuation, and non-ASCII carried as \uXXXX escapes because .properties is defined as ISO-8859-1. The bytes on disk are pure ASCII.

- propertiesJava ResourceBundle .properties — GermanA German Java ResourceBundle with MessageFormat patterns, a ChoiceFormat plural, positional arguments, escaped braces and apostrophes, a backslash line continuation, and non-ASCII carried as \uXXXX escapes because .properties is defined as ISO-8859-1. The bytes on disk are pure ASCII.

- resx.NET RESX — EnglishA .NET Resources.resx file (English) with the standard ResX schema and resheader block plus name/value string data and comments, using {0} composite-format placeholders.

- resx.NET RESX — SpanishThe Spanish satellite RESX (Resources.es.resx) — for testing .NET resource parsers and culture-based resource resolution against the same keys.

- xmlAndroid <plurals> — Arabic (6 quantities)Arabic Android quantity strings: 4 <plurals> blocks with an <item> for each of the 6 CLDR quantities ar actually selects. Rename to plurals.xml and drop into res/values-ar/ to use it as-is.

- xmlAndroid <plurals> — English (2 quantities)English Android quantity strings: 4 <plurals> blocks with an <item> for each of the 2 CLDR quantities en actually selects. Rename to plurals.xml and drop into res/values/ to use it as-is.

Generated by generation/localization_p7.py. Free for any use, no attribution required — license.