Skip to content

feat: add i18n for most pages#2747

Open
weareoutman wants to merge 6 commits intocinnyapp:devfrom
weareoutman:i18n
Open

feat: add i18n for most pages#2747
weareoutman wants to merge 6 commits intocinnyapp:devfrom
weareoutman:i18n

Conversation

@weareoutman
Copy link
Copy Markdown

Description

This PR adds i18n for almost all pages, while #1576 introduced i18next but never progressed on again.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 9, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@weareoutman
Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

ajbura added a commit to cinnyapp/cla that referenced this pull request Mar 9, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 9, 2026

Preview: https://2747--pr-cinny.netlify.app
⚠️ Exercise caution. Use test accounts. ⚠️

@weareoutman weareoutman marked this pull request as draft March 9, 2026 08:03
@weareoutman
Copy link
Copy Markdown
Author

It is not fully done yet, and it evolves lots of file changes, let me know if this contribution makes sense for you, or how can I make it more reviewable.

@ajbura
Copy link
Copy Markdown
Member

ajbura commented Mar 9, 2026

Hey @weareoutman, it largely looks good. can we have an option in settings to change the language to test so we can switch it without totally depending on system wide language change. And also can track the progress of what has/not been translated in issue

@weareoutman weareoutman changed the title Add i18n for space pages, permissions, emoji/sticker settings Add i18n for most pages Mar 9, 2026
@weareoutman weareoutman marked this pull request as ready for review March 9, 2026 08:53
@weareoutman
Copy link
Copy Markdown
Author

Added the language option in settings > general:

image

Except for this, it should only contains translation changes, and now translation should cover most pages.

@weareoutman
Copy link
Copy Markdown
Author

Rebased and ready for review 🍻

@Stealthii
Copy link
Copy Markdown

Added the language option in settings > general:
image

Except for this, it should only contains translation changes, and now translation should cover most pages.

top option should be System setting, and the default.

There's also some odd decisions about fields to translate, such as dialog.userIdPlaceholder (which was "@username:server", but now "@用户名:服务器" in your zh changes.

Did you perform these translations yourself, or use assistive tooling?

@Stealthii
Copy link
Copy Markdown

@weareoutman Personal opinion here - I would separate the implementation of i18n support from a PR with your translations to another language. These are two separate things to review and fall under different scrutiny, besides until it's decided what should be translated, performing translations may waste work.

@weareoutman
Copy link
Copy Markdown
Author

weareoutman commented Mar 10, 2026

top option should be System setting, and the default.

From my experience, most websites and apps don't offer the 'System setting' option for language.

Edit: i18next-browser-languagedetector will make it auto select the actual system setting language at initial.

There's also some odd decisions about fields to translate, such as dialog.userIdPlaceholder (which was "@username:server", but now "@用户名:服务器" in your zh changes.

It's a placeholder, so I think translation here is reasonable.

Did you perform these translations yourself, or use assistive tooling?

Yes, changes are massive, so I have to use some tools, but all with careful manual review and corrections.

I would separate the implementation of i18n support from a PR with your translations to another language.

I agree with that, but the initial i18n support was already done in #1576 , this PR only introduces translations and a language selection in settings panel.

@Stealthii Thanks for your advice.

@weareoutman
Copy link
Copy Markdown
Author

@ajbura Congrats on your newly release which supports Voice/Video calls, that's a great work.

Do you have time to review this? I'll rebase it once you'd like to review, since the chance of conflicts is high for each new commits on the main branch.

@ajbura
Copy link
Copy Markdown
Member

ajbura commented Mar 14, 2026

@weareoutman Thanks you for the support!

While it looks good overall. I can not review the zh.json file as I do not know the language. As said by other contributor I also think it would be a good idea to have zh change as a new PR so we can ask other community member who are speaker of language for review without blocking the translation support changes.

@kfiven
Copy link
Copy Markdown
Collaborator

kfiven commented Mar 15, 2026

We can setup the translation over Weblate, so I think we should just do the sting(-ification) here.

@weareoutman
Copy link
Copy Markdown
Author

@ajbura That makes sense. Rebased and removed zh.json, also added a 'supportedLanguages' in config.json to enable language selection in settings panel.

For my situation, manually adding zh.json and editing config.json after build would do the trick too, even if zh.json is not included by default (same to other languages).

@kfiven Not farmiliar with Weblate, but I guess it can help to generate locales/*.json based on `locales/en.json*.

@kfiven kfiven changed the title Add i18n for most pages feat: add i18n for most pages Mar 16, 2026
@kfiven
Copy link
Copy Markdown
Collaborator

kfiven commented Mar 16, 2026

@kfiven Not farmiliar with Weblate, but I guess it can help to generate locales/.json based on `locales/en.json.

It's a web based platform where translators can go and translate in the language they want. Then bot sync them back to the repo.

@weareoutman weareoutman requested a review from kfiven March 17, 2026 07:34
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.

4 participants