Since the one-login rollout on Sept 10, every sign-in goes through account.kagi.com. Per the release notes, password, 2FA and passkey settings are managed there now too. The page offers nine languages, and Ukrainian isn't one of them.
That leaves a gap: the Kagi Search Ukrainian locale is at 100% on Localazy (3652/3652 strings), so Ukrainian users get a fully translated Kagi everywhere except the first screen they see and the place where they manage their account.
Adding uk to the language list won't be enough on its own, because the account app's strings aren't in the Localazy project, so translators can't pick them up. You can see this in the other locales too. The current bundle has 503 English strings, and the eight non-English locales have between 84 and 155 of them (17–31%). On the sign-in screen itself, "Continue" is the only string translated in all of them. "Sign in or sign up to Kagi", "or continue with", "What do these providers share with Kagi?", "Read the docs" and the Bacon quote are English in every language.
Some of this already exists in Ukrainian in the Kagi Search project and could be reused. That includes "or continue with" (layouts.signup.oauth_continue_with), "Why do we need an email address?", the support contact line and the Bacon quote with its attribution, all used by the old sign-in page.
Request:
- Add the account.kagi.com strings to Localazy, either in the Kagi Search project or a sibling one.
- Add Ukrainian (
uk-UA) to the language list on account.kagi.com.
I'm a trusted translator on the Kagi Search project and will do the Ukrainian side (about 500 strings) as soon as they're on Localazy.
Here's how users run into this today:
- New user signing up. Someone in Ukraine opens kagi.com, which already renders in Ukrainian from their browser language, and clicks "Sign up". Today they land on an English page and have to work out "Sign in or sign up to Kagi" and "{appName} uses your Kagi account for sign-in, billing, and recovery" before they have an account at all. With the fix, the whole funnel stays in Ukrainian.
- Existing user getting signed out. A user with their Kagi interface language set to Ukrainian resets their password or gets logged out on a new device. Kagi Search tells them in Ukrainian that they will need to sign in again, then sends them to an English page to do it.
- Security and recovery. The Sept 10 release notes say 2FA users must generate new backup codes at account.kagi.com/account/security/recovery. Password, 2FA, passkey and recovery settings now live only there. These are the screens where a misunderstood sentence can lock someone out, so they need to be in the user's language most of all.
- Kids accounts. The page now has "Sign in as a Kid". Children are the users least likely to read English.
- Mobile apps. The Assistant and Translate apps send users through the same sign-in flow, so the gap shows up there too.
This would extend two things Kagi already has:
- The interface language setting. kagi.com already knows each user's language. When it redirects to account.kagi.com it could pass it along, for example with the standard OIDC
ui_locales parameter, falling back to Accept-Language for signed-out visitors. The language switcher on account.kagi.com would then list the same locales as kagi.com's own language setting rather than a separate, shorter list.
- The Localazy workflow. The account app's strings would go into Localazy next to
search.yaml, so the existing translator community picks them up the same way it does for Search. Strings that already exist there (sign-up tagline, "or continue with", support contact, the Bacon quote) could be reused directly.
Other account pages already work this way. Google Account, Proton Account and Mozilla accounts all show their sign-in and account-settings pages in the same language as the product the user came from, with the same language list as the product itself. A user never switches language just because they moved from the app to its login page.