Everything under res/ is a resource, compiled into an ID in the generated R class (R.string.share) and resolved at run time against the device's configuration. A directory with a qualifier suffix supplies alternatives under the same names: values-fr/ for French, values-night/ for the dark theme.
<!-- values/strings.xml -->
<string name="catalog_title">Catalog</string>
<!-- values-fr/strings.xml -->
<string name="catalog_title">Catalogue</string>
<!-- values/colors.xml, then values-night/colors.xml -->
<color name="page">#FFF8F0</color> <!-- warm paper -->
<color name="page">#1E1A17</color> <!-- same names, night values -->Compose 234 reads them with stringResource(), pluralStringResource() and colorResource(). cmd uimode flips night mode, and cmd locale sets a per-app language (Android 13+):
adb shell cmd uimode night yes
adb shell cmd locale set-app-locales com.example.booknest --locales fr-FR
adb shell cmd locale get-app-locales com.example.booknestOutput
Night mode: yes Locales for com.example.booknest for user 0 are [fr-FR]

Qualifiers follow a fixed order (drawable-night-hdpi, not drawable-hdpi-night). Use %1$s arguments and <plurals>, since languages reorder words and differ in plural forms.