Skip to content

Move Translations#889

Open
mrbober42-lgtm wants to merge 9 commits into
torlando-tech:mainfrom
mrbober42-lgtm:main
Open

Move Translations#889
mrbober42-lgtm wants to merge 9 commits into
torlando-tech:mainfrom
mrbober42-lgtm:main

Conversation

@mrbober42-lgtm
Copy link
Copy Markdown

@mrbober42-lgtm mrbober42-lgtm commented May 3, 2026

Many translations from the start menu have been moved to the strings.xml file.
(I also added a Russian translation)

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 3, 2026

Greptile Summary

This PR extracts all hardcoded strings from the onboarding and welcome screens into values/strings.xml and adds a Russian translation in values-ru/strings.xml. The approach is correct — stringResource() is used throughout Compose, format arguments (including R.string.app_name from resValue) are wired properly, and the AGP version bump to 9.2.0 is included as a minor separate change.

Confidence Score: 5/5

Safe to merge; only a P2 style nit on two camelCase key names remains.

All findings are P2 (naming convention only). No logic, correctness, or runtime issues were found. The string extraction and Russian translation are functionally correct.

No files require special attention beyond the optional nextAction to next_action rename.

Important Files Changed

Filename Overview
app/src/main/res/values/strings.xml Adds 49 new string resource entries for onboarding screens; correct overall, but nextAction and unrestricted_battery_secondDescription deviate from the file-wide snake_case naming convention.
app/src/main/res/values-ru/strings.xml New Russian translation file; key set matches English, and previously-flagged typos are corrected. Same camelCase key names (nextAction, unrestricted_battery_secondDescription) inherited from the English file.
app/src/main/java/network/columba/app/ui/screens/onboarding/pages/WelcomePage.kt Replaces all hardcoded strings with stringResource() calls; correctly uses R.string.app_name (generated by resValue) as a format argument.
app/src/main/java/network/columba/app/ui/screens/onboarding/pages/PermissionsPage.kt All hardcoded strings replaced with stringResource(); passes R.string.app_name correctly as format arg for parameterised strings.
app/src/main/java/network/columba/app/ui/screens/onboarding/pages/ConnectivityPage.kt Strings extracted cleanly; no logic changes.
app/src/main/java/network/columba/app/ui/screens/onboarding/pages/IdentityPage.kt Strings extracted cleanly; extra blank lines added around imports are harmless.
app/src/main/java/network/columba/app/ui/screens/WelcomeScreen.kt Single Skip string extracted to R.string.skip; straightforward.
app/src/main/java/network/columba/app/ui/screens/onboarding/OnboardingPagerScreen.kt Single Skip string in TopBar extracted to R.string.skip; no other changes.
build.gradle.kts AGP bumped from 9.1.0 to 9.2.0; unrelated to i18n work but a routine version update.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A([App Launch]) --> B[WelcomeScreen]
    B -->|Get Started| C[OnboardingPagerScreen]
    B -->|Restore| Z([Restore Flow])
    C --> D[WelcomePage]
    D -->|Continue| E[IdentityPage]
    E -->|Continue| F[ConnectivityPage]
    F -->|Continue| G[PermissionsPage]
    G -->|Continue| H([Setup Complete])
    D -->|Skip| H
    E -->|Back| D
    F -->|Back| E
    G -->|Back| F

    subgraph strings [String Resources]
        EN[values/strings.xml]
        RU[values-ru/strings.xml]
    end

    D & E & F & G & B & C -.->|stringResource| strings
Loading
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
app/src/main/res/values/strings.xml:47
Two resource key names use camelCase (`nextAction`, `unrestricted_battery_secondDescription`) while every other key in this file uses `snake_case`. Android's resource naming convention is `snake_case` throughout, and both entries break that consistency. The same pattern appears in `values-ru/strings.xml` (lines 34 and 50). Renaming them to `next_action` and `unrestricted_battery_second_description` also requires updating all Kotlin `R.string.*` references in `ConnectivityPage.kt`, `IdentityPage.kt`, `PermissionsPage.kt`, and `WelcomeScreen.kt`.

```suggestion
    <string name="next_action">Continue</string>
```

Reviews (6): Last reviewed commit: "Fix typos in Russian strings.xml" | Re-trigger Greptile

Comment thread app/src/main/res/values/strings.xml Outdated
Comment thread app/src/main/res/values/strings.xml Outdated
Comment thread app/src/main/res/values/strings.xml Outdated
Comment thread app/src/main/res/values-ru/strings.xml Outdated
mrbober42-lgtm and others added 7 commits May 4, 2026 01:44
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
@mrbober42-lgtm
Copy link
Copy Markdown
Author

@torlando-tech, I've fixed a few minor translation errors and it's all ready now.

@mrbober42-lgtm
Copy link
Copy Markdown
Author

@torlando-tech

@sentry
Copy link
Copy Markdown
Contributor

sentry Bot commented May 6, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@torlando-tech
Copy link
Copy Markdown
Owner

@mrbober42-lgtm several unit tests failed. for example:

OnboardingPagerScreenTest > initialRender_showsWelcomePage FAILED
    java.lang.AssertionError: Assert failed: The component with Text + InputText + EditableText contains 'Welcome to Columba' (ignoreCase: false) is not displayed!
        at androidx.compose.ui.test.AssertionsKt.assertIsDisplayed(Assertions.kt:34)
        at network.columba.app.ui.screens.onboarding.OnboardingPagerScreenTest.initialRender_showsWelcomePage(OnboardingPagerScreenTest.kt:60)
        ```

Copy link
Copy Markdown
Owner

@torlando-tech torlando-tech left a comment

Choose a reason for hiding this comment

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

Please look through the unit test failures and find why some of them are failing, pay special attention to strings not matching

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants