Skip to content

Conversation

@supra08
Copy link

@supra08 supra08 commented May 13, 2025

Important

Update Android and iOS build configurations, enhance API for attachment handling, and refresh translations.

  • Build Configuration:
    • Update JDK version to 17 in .github/workflows/ci.yml.
    • Modify android/app/build.gradle to use project(':ReactAndroid') instead of dynamic versioning.
    • Remove jcenter() repository and add dependency substitution in android/build.gradle.
    • Add pluginManagement to android/settings.gradle.
  • API Changes:
    • Add deleteAttachment and getAttachments functions in apiFetch.js.
    • Update apiFetch.js to handle attachment deletions and improve error handling.
  • Translation Updates:
    • Update translations in messages_be.json, messages_da.json, messages_fa.json, messages_fi.json, messages_gu.json, messages_pt.json, messages_zh-Hans.json.
  • Miscellaneous:
    • Update Podfile.lock for iOS dependencies.
    • Modify tools/checkout-keystore and tools/lib/ensure-coreutils.sh for script improvements.
    • Add build_rn_packages function in tools/postinstall to handle React Native package builds.

This description was created by Ellipsis for 3400d74. You can customize this summary. It will automatically update as commits are pushed.

chrisbobbe and others added 30 commits June 10, 2024 19:02
Thanks as always to our kind volunteer translators.
…Error

This is our minimal support for zulip#5870 in this legacy codebase.
Supporting it properly with a client-side check of the setting is
more effort than we can spare here, because it requires implementing
the group-based permissions system.

Probably more error handling is called for in general (like for
network or server issues), but zulip#3881 ("Sending outbox messages is
fraught with issues") is complicated and it's probably best to leave
it be.

Fixes: zulip#5870
This matches the behavior of Zulip web.

The meaning of this value is that the image is either scaled
according to `contain`, or not scaled at all, whichever makes it
smaller.

In other words, we still scale down all the images we were scaling
down, but we stop scaling any images up, which tended to look a bit
silly.  If the user wants to see the image scaled up, they can
always tap to see it in the lightbox.

This case is about to become more common with the advent of
thumbnailing: when we get a message where the server hasn't yet
gotten to producing a thumbnail, we'll show a placeholder image.
That placeholder is a 30x30 SVG, which looks rather odder if
scaled up to 160px high.
This is a port of zulip/zulip#30477.  That PR isn't yet merged, but
it's been deployed on chat.zulip.org and I believe the styling is
unlikely to change.  (If it does get tweaked, we can always update.)

The placeholder `img` elements already come with a `src` pointing
to this same `loader-black.svg` file, but on the Zulip server.
So the effects of this change are:

 * The placeholder image is local instead of remote, which may
   improve the experience a bit on a slow connection.

 * In dark theme, we use an appropriately contrasting white spinner,
   instead of a black spinner that blends in with the background.

Fixes: zulip#5875
Thanks as always to our kind volunteer translators.
None of the strings are translated, so not time to offer these in
the UI yet. But perhaps soon!
The retired repo "jcenter" has been saying for years that it'll go
away, and that seems to have happened. Take this dependency at a
later version, which is available from Maven Central.

Fixes: zulip#5888
Taking this upgrade because we learned from dependabot that it fixes
a security issue:
  zulip#5887

The issue is in a dev-only indirect dependency, and even our
development tools *probably* don't trigger it.  But I can't
rule out that they might.

The yarn.lock diff from dependabot is a bit messy, though,
so here's me doing the same upgrade directly.

---

Because this is an indirect dependency, `yarn upgrade serve-static`
just does nothing.  (Seems like a bug / misfeature in Yarn.)

And I don't want to do a general `yarn upgrade` in this legacy
codebase right now -- that would balloon into a larger task.

So, here's a fun technique to make the upgrade in a surgical way:

  $ perl -i -0pe 's{^serve-static@.*?\n\K.*?^$}
                   {  version "1.16.2"\n}sm
                 ' yarn.lock
  $ yarn

That deletes the "version", "resolved", and other fields in the
lockfile's resolution of the `serve-static` package, replacing them
with just a "version" line pointing at the desired version.

Then rerunning `yarn` (aka `yarn install`) starts from that version
when filling back in the rest of the details.
As we said on the last one of these, fc2dab7:

  This setting is not to be confused with the targetSdkVersion. The
  latter goes into the built manifest, and affects a wide range of
  behavior, so bumping it requires careful testing. This is used
  purely at build time, and should have no effect on runtime
  behavior.

This value needs to be at least as high as targetSdkVersion, and we
need to bump that to 34 soon (zulip#5877). So, do this to prepare for
that.

The build warnings change slightly, but the new warnings all seem
acceptable.  Details and discussion starting at:
  zulip#5879 (comment)

Related: zulip#5877
This is a library we use in tools/generate-webview-js , for
producing the generated JS code to go in the message-list webview
based on our several source files for it.

This upgrade gets us a large number of changes that don't matter to us
because they have no effect on the output JS.  One of those is to fix
an XSS vulnerability, CVE-2024-47068:
  GHSA-gcx4-mw62-g8wm
which we learned about from Dependabot:
  zulip#5893

Even though the vulnerability doesn't affect us, it's good to upgrade
past the fix to avoid having to ever re-evaluate whether it affects us.
The fix is only in 3.x+, so go to the latest 3.x.

There's also one change affecting the output, which is that the
`__esModule` marker goes away.  Seems fine.  That happened in 3.0.0:
  https://github.com/rollup/rollup/blob/master/CHANGELOG.md#300
With the upcoming change to build RN from source, CI was failing
with out-of-memory errors. This should help with those.

Why twice as much memory? See 3677788, which bumped this value
from 1024 to 1280. From the commit message there:

  Compare facebook/react-native@a2a703247, which happened on the way
  to RN v0.68.  That one had the explanation

    > Updates maximum heap size for the gradle build to account for
    > building RN from source when new architecture is enabled.

  which doesn't apply as we aren't yet adopting RN's New
  Architecture. But perhaps if we did, we'd need to increase the
  heap size even more: that commit takes it to 2 GiB.

We're not adopting RN's New Architecture, and we don't plan to in
this legacy codebase. But we will be building RN from source, so
this seems like a good value to try.
This gets us zulip/react-native@5c36f102f and its fixup commit
zulip/react-native@b7b2f6c22 (on the `0.68.7-zulip` branch), to fix
a build failure with `targetSdkVersion = 34` without having to
upgrade to RN v0.73. (The build failure is in debug builds only, but
we still need to make those to develop fixes in this legacy project
as needed.)

Thanks to Greg for investigating the build failure:
  zulip#5877 (comment)

Since (as part of working on this) the `0.68.7-zulip` branch also
includes the things that were in the patch-package patch, that patch
becomes redundant and we delete it here.

Done by digesting the history of RN's doc on building RN from
source:
  facebook/react-native-website@22da0cc63
and making some simplifications.

The line `ndkVersion = 24…` sets a variable that ReactAndroid reads,
to control the NDK version it builds with. It would otherwise build
with NDK 21, which is old and chosen automatically based on
ReactAndroid's targetSdkVersion of 31. We need it to be at least 24
for Apple Silicon support.
This change will be required in order to upload new releases to the
Play Store, effective 2024-10-31, which includes the extension we
requested.

This change causes Android 14 and later to apply to our app a number
of behavior changes introduced in that version, documented here:
  https://developer.android.com/about/versions/14/behavior-changes-14

Fixes: zulip#5877
Thanks as always to our kind volunteer translators.
These are all still showing 0% translated in Transifex, so it's not
yet time to offer them in the UI. Perhaps soon!
Transifex is showing mobile.json as 6.15% translated, which is above
our threshold of 5% for offering a language in the UI. Thanks as
always to our kind volunteer translators!
chrisbobbe and others added 27 commits September 30, 2024 14:07
The Sequoia CLI's changelog doesn't seem to mention these changes:
  https://gitlab.com/sequoia-pgp/sequoia-sq/-/blob/b4158f40dea64655cf7357d3c8f220e8bd1708d9/NEWS

The `--recipient-file` rename, anyway, looks like it happened here:
  https://gitlab.com/sequoia-pgp/sequoia/-/commit/db90178d5b61e3310f979fdaefc66610adf0d33e
  https://gitlab.com/sequoia-pgp/sequoia/-/issues/933

Shrug; these changes are easy enough to adapt to.

```
$ sq version
sq 0.38.0
using sequoia-openpgp 1.21.2
with cryptographic backend Nettle 3.10 (Cv448: true, OCB: true)
```
…egen

We recently started building RN from Git, in 0509575. This caused
an iOS build failure in the shell script '[CP-User] Generate Specs':

  Error: Cannot find module '/Users/chrisbobbe/dev/zulip-mobile/node_modules/react-native/packages/react-native-codegen/lib/cli/combine/combine-js-to-schema-cli.js'

Note the last part:
  [...]/lib/cli/combine/combine-js-to-schema-cli.js'

There is a [...]/src/[...] version of that file, but the /lib/ one
is created by `yarn build`, and when I ran that, the app build
succeeded.
This updates rn-fetch-blob to a version with one cherry-picked commit
atop the v0.11.2 we were previously using:
  zulip/rn-fetch-blob@e17b2a51c

The rn-fetch-blob package itself is no longer maintained:
  joltup/rn-fetch-blob#863

There's a fork that is maintained, `react-native-blob-util`:
  https://npmjs.com/package/react-native-blob-util

That fork addressed the Android 14 requirement to set an
explicit RECEIVER_EXPORTED flag (zulip#5903), merging a fix:
  RonRadtke/react-native-blob-util#303
  RonRadtke/react-native-blob-util#306

Our fix is cherry-picked from that one.

(If this app weren't a legacy codebase in maintenance mode, we'd take
the time to upgrade this dependency more generally, probably switching
to the react-native-blob-util fork.  As is, we'll skip that and use
the time to focus on completing the new Flutter app.)

Fixes: zulip#5903
The `is_active` property of realm_user/update events is new in Zulip
Server 8.0 (FL 222):
  https://zulip.com/api/get-events#realm_user-update

Start handling it by moving the user between `state.users` (where we
keep active users) and `state.realm.nonActiveUsers`.

For servers 10.0+ (starting at FL 303), the client has more to do to
handle user deactivation; that's zulip#5899 "Remove deactivated users
from groups". Best to do this more basic thing first.
As newly required to support Zulip Server 10+; see zulip#5899.

Fixes: zulip#5899
Thanks as always to our kind volunteer translators.
JDK 11 is quite old now.

While here, update all the details of this stanza to match what we
do in the zulip-flutter CI.
The `user_id` field has been present in reaction events since Zulip
3.0 (FL 2), which is below our kMinAllowedServerVersion (4.0). See
API docs:
  https://zulip.com/api/get-events#reaction-add
  https://zulip.com/api/get-events#reaction-remove

Fixes: zulip#5911
Thanks as always to our kind volunteer translators.
This is still showing 0% translated in Transifex, so it's not yet
time to offer it in the UI. Perhaps soon!
…e 16

See issue:
  getsentry/sentry-react-native#3883

Reportedly, the first working version is 5.24.1. So, use `~5.24.1`
for the range, pulling in 5.24.3.

With ^5.9.2, I was getting 5.36.0, which came with an Android build
failure that looked like zulip#5345.
See 8552afc for the previous one of these.

The Zulip Server 5 release went out over 3 years ago, so the 4.x
releases are all long out of our announced 18-month compatibility
window:
  https://blog.zulip.com/2022/03/29/zulip-5-0-released/
  https://zulip.readthedocs.io/en/latest/overview/release-lifecycle.html#client-apps

So we can cheerfully refuse to connect to 4.x releases; our "Server
not supported" nag banner has been asking server admins on those
versions to upgrade since 8552afc, which the changelog says went
out in v27.216, dated 2023-10-10.

The last 6.x release, 6.2, went out on 2023-05-19. That's also
outside the 18-month window, so it's time to start showing the nag
banner on 5.x and 6.x.

The last 7.x release, 7.5, went out on 2023-11-16, which is a month
and a bit shy of 18 months, so it's not yet time to show the banner
for versions 7.x.
Thanks as always to our kind volunteer translators.
This name got cleaned up, hooray.  (A couple of years ago --
zulip/zulip@43b4f1057 -- but we use these instructions only
occasionally and update them less often than that.)
In particular PUSH_NOTIFICATION_BOUNCER_URL was replaced by
ZULIP_SERVICES_URL last year, in zulip/zulip@4a9314943.

I believe the need for a distinct EXTERNAL_HOST value when
registering the server with the bouncer came about as part of the
same work around the same time, though it may have been in a
different commit.

Also at some point the spelling of the flag got fixed to use
hyphens as in the normal CLI convention.

Chat thread, where I found the existing instructions no longer
worked and then we debugged:
  https://chat.zulip.org/#narrow/channel/243-mobile-team/topic/notifications.20from.20dev.20server/near/2159857

With these changes, the instructions work for me.  (I didn't wipe my
dev server to verify it works from there, but I did reset all the
state I believe is relevant: removed my old custom_dev_settings.py
and the two `zulip_org_*` items from dev-secrets.conf .)
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Caution

Changes requested ❌

Reviewed everything up to 3400d74 in 5 minutes and 43 seconds. Click for details.
  • Reviewed 12811 lines of code in 115 files
  • Skipped 4 files when reviewing.
  • Skipped posting 121 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. tools/checkout-keystore:60
  • Draft comment:
    Updated use of '--recipient-file' (and '--output') is clearer than the deprecated '--recipient-key'. Consider adding an inline comment noting that this change aligns with the latest sq CLI conventions.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50% None
2. tools/lib/ensure-coreutils.sh:75
  • Draft comment:
    The fallback to using Homebrew’s brew prefix (with /opt/homebrew/bin/brew --prefix as an alternative) is a pragmatic approach for macOS. Consider adding an explicit error check or warning if brew is not found to improve robustness in environments lacking Homebrew.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50% None
3. tools/postinstall:12
  • Draft comment:
    The addition of the build_rn_packages function ensures that react-native-codegen is properly built from the Git version, which is useful when using a custom react-native fork. Verify that the output of 'yarn clean && node scripts/build.js' meets your build requirements in CI.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50% None
4. docs/howto/dev-server.md:24
  • Draft comment:
    Typo: In the sentence on line 24, consider removing the extra 'a' from 'this a time or two before' to read as 'this time or two before.'
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
5. docs/howto/testing.md:18
  • Draft comment:
    Consider using 'JavaScript' (capital S) instead of 'Javascript' for consistency with common usage and elsewhere in the document (e.g., 'JS' on line 15). This is a trivial typographical improvement.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
6. docs/howto/windows-wsl.md:279
  • Draft comment:
    Typographical error: The Windows file path is written as C\Program Files but should be C:\Program Files.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
7. docs/howto/windows-wsl.md:318
  • Draft comment:
    Typographical error: The WSLENV example (set WSLENV "JAVA_HOME/p:ANDROID_HOME/p) is missing a closing double quote. It should be set WSLENV "JAVA_HOME/p:ANDROID_HOME/p".
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
8. package.json:13
  • Draft comment:
    There appears to be a typographical error in the "build:ios" script at line 13: "archivexcodebuild" seems to be a concatenated or mistyped command. Please double-check if it should be split into the appropriate commands (perhaps ‘xcodebuild -scheme ZulipMobile archive’).
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
9. src/api/apiErrors.js:43
  • Draft comment:
    Typo: In the jsdoc comment for ApiError on line 43, there's no space after 'from' before 'Error'. Consider adding a space for clarity: 'inherits from Error'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
10. src/api/eventTypes.js:262
  • Draft comment:
    Typo: The comment currently reads 'ugprade; handling an event that includes them is the fastest way to learn about a server upgrade.' Consider changing 'ugprade' to 'upgrade' for clarity.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
11. src/compose/ComposeBox.js:790
  • Draft comment:
    Typo: Please change 'combinarion' to 'combination' in the comment explaining the hack for TextInput styling.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
12. static/translations/messages_ar.json:178
  • Draft comment:
    Typo: In the translation for 'Wrong email or password. Try again.' on line 178, 'أخري' should be corrected to 'أخرى' for proper Arabic grammar.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
13. static/translations/messages_ar.json:179
  • Draft comment:
    Typo: In the translation for 'Wrong username or password. Try again.' on line 179, 'أخري' should be corrected to 'أخرى'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
14. static/translations/messages_ar.json:168
  • Draft comment:
    Typo: On line 168, 'كلمه السر' should be corrected to 'كلمة السر' for proper Arabic spelling.
  • Reason this comment was not posted:
    Comment was on unchanged code.
15. static/translations/messages_be.json:27
  • Draft comment:
    Typographical error: The phrase 'Немагчама адкрыть спасылку' should be corrected to 'Немагчыма адкрыць спасылку'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
16. static/translations/messages_be.json:31
  • Draft comment:
    Typographical error: The translation for 'Those messages could not be found.' is 'Паведамленне не знойдзена', which is singular. It should be updated to a plural form such as 'Паведамленні не знойдзены'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
17. static/translations/messages_be.json:449
  • Draft comment:
    Typographical error: The phrase 'Адна плынь з такой назвназвай ужо існуе.' contains a duplicated segment ('назвназвай'). It should be corrected to 'Адна плынь з такой назвай ужо існуе.'
  • Reason this comment was not posted:
    Comment was on unchanged code.
18. static/translations/messages_bg.json:325
  • Draft comment:
    Typo: The translation for 'Mark all as read' uses a mix of characters ('Mаркирай всички като прочетени'). It appears that the first character is a Latin 'M' instead of the Cyrillic 'М'. Please correct to ensure consistent use of the Bulgarian Cyrillic script.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
19. static/translations/messages_ca.json:242
  • Draft comment:
    Typo detected in the translation for 'Indonesian': currently "Indonesi". It appears to be missing characters (likely should be something like "Indonèsia" or "Indonesià"). Please verify and correct the spelling.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
20. static/translations/messages_ca.json:109
  • Draft comment:
    There is a trailing whitespace at the end of the translation value for 'Please wait for the upload to complete.' (line 109). Please remove the extra space to maintain consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
21. static/translations/messages_ca.json:288
  • Draft comment:
    The translation for 'Forgot password?' is "Heu oblidat al contrasenya?". Typically, in Catalan the definite article for 'contrasenya' should be 'la' rather than 'al'. Please review and consider changing it to "Heu oblidat la contrasenya?" if that is more appropriate.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
22. static/translations/messages_cs.json:253
  • Draft comment:
    Typographical error: The translation for "Portuguese (Portugal)" reads "Portugalština ()" which contains an unnecessary empty parenthesis. Consider removing it for consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
23. static/translations/messages_cs.json:264
  • Draft comment:
    Typographical consideration: The translation for "Vietnamese" is "Větnamština". Verify if this spelling is intentional or if the more common "Vietnamština" should be used.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
24. static/translations/messages_cy.json:112
  • Draft comment:
    The translation for 'Open settings' ('Agor gosodiadau ') has a trailing space that should be removed for consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
25. static/translations/messages_cy.json:200
  • Draft comment:
    The translation for 'Unmute topic' ('Dad-fudo'r pwnnc') appears to include an extra 'n'. It should likely be 'Dad-fudo'r pwnc' to match the consistent use of 'pwnc' for 'topic'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
26. static/translations/messages_da.json:113
  • Draft comment:
    The translation for 'Camera unavailable.' is given as "Kamara ikke tilgængeligt". 'Camera' in Danish should be spelled as "Kamera". Please correct the typo.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
27. static/translations/messages_de.json:178
  • Draft comment:
    Typographical error: 'falschers Passwort' should be corrected to 'falsches Passwort'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
28. static/translations/messages_de.json:283
  • Draft comment:
    Typographical error: In the translation for "{username} will not be notified unless you subscribe them to this channel.", the phrase 'du abonnierst sie:ihn für diesen Kanal' is unclear. Consider revising to a consistent pronoun, e.g. 'du abonnierst ihn für diesen Kanal' (or choose the appropriate pronoun based on context).
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
29. static/translations/messages_de.json:317
  • Draft comment:
    Typographical error: The translation for 'Notifications when online' is 'Benachrichtungen wenn Online'. It should be corrected to 'Benachrichtigungen wenn online'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
30. static/translations/messages_eo.json:14
  • Draft comment:
    Typographical issue: The translation value for "Quote-and-reply failed" has an unnecessary leading space (" Citi kaj respondi malsukcesis"). Please remove the leading space to maintain consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
31. static/translations/messages_eo.json:20
  • Draft comment:
    Typographical issue: The translation for "Notify stream" includes an unnecessary leading space (" Sciiga fluo"). Removing the extra space would improve consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
32. static/translations/messages_es.json:125
  • Draft comment:
    Typo: 'vácio' should be corrected to 'vacío'.
  • Reason this comment was not posted:
    Comment was on unchanged code.
33. static/translations/messages_es.json:271
  • Draft comment:
    Typo: 'habiliatar' should be corrected to 'habilitar'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
34. static/translations/messages_es.json:397
  • Draft comment:
    Typo: 'automáticamente' is missing its accent in the source text ('automáticamente').
  • Reason this comment was not posted:
    Comment was on unchanged code.
35. static/translations/messages_es.json:211
  • Draft comment:
    Typo: 'linea' should be corrected to 'línea'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
36. static/translations/messages_es.json:212
  • Draft comment:
    Typo: 'linea' should be corrected to 'línea'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
37. static/translations/messages_es.json:199
  • Draft comment:
    Typo: 'notificacion' should be corrected to 'notificación'.
  • Reason this comment was not posted:
    Comment was on unchanged code.
38. static/translations/messages_fa.json:178
  • Draft comment:
    Typographical error: In the translation for 'Wrong email or password. Try again.', there's an extra space before the period ('اشتباه است .'). Please remove the extra space so that it reads 'اشتباه است.'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
39. static/translations/messages_fa.json:261
  • Draft comment:
    Typographical suggestion: The translation for 'Tamil' is rendered as 'زبان تمیل', but for consistency with other language names (e.g. 'انگلیسی', 'عربی'), it might be better to use simply 'تامیل' (or the standard local term) unless there's a specific rationale for including 'زبان'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
40. static/translations/messages_fa.json:253
  • Draft comment:
    Typographical suggestion: The translation for 'Portuguese (Portugal)' is given as 'پرتقالی (پرتقال)'. Commonly, the Portuguese language is translated as 'پرتغالی' and Portugal as 'پرتغال'. Please review this for accuracy.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
41. static/translations/messages_fa.json:273
  • Draft comment:
    Typographical error: There's an inconsistency in the translation for notifications. While 'Failed to enable notifications' uses 'نوتیفیکیشن', 'Failed to disable notifications' uses 'توتیفیکیشن'. For consistency, please use the same term (preferably 'نوتیفیکیشن') in both cases.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
42. static/translations/messages_fi.json:37
  • Draft comment:
    Typographical error: In line 37, "Notficiation Botin" should be corrected to "Notification Botin" (or a more appropriate translation, e.g. "Notifikaatiobotin").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
43. static/translations/messages_fi.json:56
  • Draft comment:
    Typographical error: In line 56, "åkanavia" appears to have an extraneous character. It should be corrected to "kanavia".
  • Reason this comment was not posted:
    Comment was on unchanged code.
44. static/translations/messages_fr.json:18
  • Draft comment:
    The translation for the key "channel" is currently "channel". For consistency, it should be translated to "canal".
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
45. static/translations/messages_fr.json:21
  • Draft comment:
    The value for "Notify channel" remains in English. It should be translated (e.g., "Notifier le canal") to maintain consistency with the rest of the file.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
46. static/translations/messages_fr.json:51
  • Draft comment:
    The prompt "Who can access the channel?" is still in English. Consider translating it to French (e.g., "Qui peut accéder au canal ?") for consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
47. static/translations/messages_fr.json:57
  • Draft comment:
    The line "Only organization administrators and owners can edit channels." remains in English. It should be translated (e.g., "Seuls les administrateurs et propriétaires de l'organisation peuvent modifier les canaux.") to be consistent with the French localization.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
48. static/translations/messages_fr.json:88
  • Draft comment:
    The key "Cannot subscribe to channel" remains untranslated. It should be rendered in French (for example, "Impossible de s'abonner au canal").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
49. static/translations/messages_fr.json:90
  • Draft comment:
    The translation for "Channel #{name} is private." is still in English. Consider updating it to French (e.g., "Le canal #{name} est privé.").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
50. static/translations/messages_fr.json:121
  • Draft comment:
    The prompt "Please specify a channel." remains in English. It should be translated into French (e.g., "Veuillez spécifier un canal.").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
51. static/translations/messages_fr.json:187
  • Draft comment:
    The phrase "Copy invalid link" is not translated. For a French locale, it should be translated (e.g., "Copier le lien invalide").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
52. static/translations/messages_fr.json:189
  • Draft comment:
    The key "Text copied" remains in English. It should be updated to French (for example, "Texte copié").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
53. static/translations/messages_fr.json:283
  • Draft comment:
    The sentence related to channel notifications remains in English. Please provide a proper French translation.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
54. static/translations/messages_fr.json:287
  • Draft comment:
    The entry for "Unmute channel" is still in English. It should be translated to something like "Ne plus rendre le canal muet".
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
55. static/translations/messages_fr.json:292
  • Draft comment:
    The text "Silence warnings about disabled mobile notifications" remains in English. Please translate it (e.g., "Suspendre les avertissements concernant les notifications mobiles désactivées") for consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
56. static/translations/messages_fr.json:296
  • Draft comment:
    The entry "Feature not available" is untranslated. It should be converted to French (e.g., "Fonctionnalité non disponible").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
57. static/translations/messages_fr.json:297
  • Draft comment:
    The message "This feature is only available for organizations on {zulipServerNameWithMinVersion}+." remains in English. Please provide a French translation.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
58. static/translations/messages_fr.json:298
  • Draft comment:
    The text "Upgrade instructions for server administrators" is not translated. It should be rendered in French (e.g., "Instructions de mise à niveau pour les administrateurs du serveur").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
59. static/translations/messages_fr.json:323
  • Draft comment:
    The entry "No channels found" remains in English. For consistency, translate it to French (e.g., "Aucun canal trouvé").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
60. static/translations/messages_fr.json:327
  • Draft comment:
    The key "Mark channel as read" is still in English. It should be translated into French (e.g., "Marquer le canal comme lu").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
61. static/translations/messages_fr.json:410
  • Draft comment:
    The sentence "Only organization admins are allowed to post to this channel." remains untranslated. Please translate it to French (e.g., "Seuls les administrateurs de l'organisation sont autorisés à poster sur ce canal.").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
62. static/translations/messages_fr.json:446
  • Draft comment:
    The phrase "Copy link to channel" is not translated. It should be updated to French (e.g., "Copier le lien vers le canal").
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
63. static/translations/messages_fr.json:448
  • Draft comment:
    The key "Failed to copy channel link" remains in English. Consider providing a French translation (e.g., "Échec de la copie du lien du canal").
  • Reason this comment was not posted:
    Comment was on unchanged code.
64. static/translations/messages_fr.json:435
  • Draft comment:
    The French translation for "Oops! Something went wrong." is "Oups! il y a eu une erreur.". Consider capitalizing the beginning after the exclamation (e.g., "Oups! Il y a eu une erreur.") for proper French style.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
65. static/translations/messages_fr.json:265
  • Draft comment:
    The translation of "Welsh" is given as "gallois", but for language names it should be capitalized (e.g., "Gallois") to be consistent with other language names.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
66. static/translations/messages_hi.json:182
  • Draft comment:
    Typo in translation for 'Enter a password': 'पासवर्ड ङालें' should be corrected to 'पासवर्ड डालें'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
67. static/translations/messages_hi.json:144
  • Draft comment:
    Typo in 'No results': 'कोई परिणाम नही' should be 'कोई परिणाम नहीं'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
68. static/translations/messages_hi.json:145
  • Draft comment:
    Typo in 'No messages': 'कोई संदेश नही' should be 'कोई संदेश नहीं'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
69. static/translations/messages_hi.json:160
  • Draft comment:
    Typo in 'Switch account': 'खाता बदलॆं' should be 'खाता बदलें'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
70. static/translations/messages_hi.json:416
  • Draft comment:
    Typo in 'Choose recipients': 'प्राप्तकर्ता चुनॆॆं' should be 'प्राप्तकर्ता चुनें'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
71. static/translations/messages_hi.json:420
  • Draft comment:
    Typo in 'Message sent': 'संदॆष भॆज दिया' should be 'संदेश भेज दिया'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
72. static/translations/messages_hu.json:84
  • Draft comment:
    Typo found in the Hungarian translation on line 84: 'nem admin felhasznlálók elől rejtve' should be corrected to 'nem admin felhasználók elől rejtve'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
73. static/translations/messages_hu.json:86
  • Draft comment:
    Typo found in the Hungarian translation on line 86: 'nem admin felhasznlálók elől rejtve' should be corrected to 'nem admin felhasználók elől rejtve'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
74. static/translations/messages_hu.json:434
  • Draft comment:
    Typo in the Hungarian translation on line 434: 'emez' appears to be a typo and should be corrected to 'ezt'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
75. static/translations/messages_it.json:121
  • Draft comment:
    The key 'Please specify a channel.' is not translated; it still appears in English. It should be translated to Italian (e.g., 'Specifica un canale.').
  • Reason this comment was not posted:
    Comment was on unchanged code.
76. static/translations/messages_it.json:125
  • Draft comment:
    The translation for 'Message is empty.' is rendered as 'I messaggio è vuoto.' which uses the wrong Italian definite article. It should be 'Il messaggio è vuoto.'
  • Reason this comment was not posted:
    Comment was on unchanged code.
77. static/translations/messages_it.json:327
  • Draft comment:
    The key 'Mark channel as read' is not translated; it remains in English. A proper Italian translation is needed (e.g., 'Segna il canale come letto').
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
78. static/translations/messages_it.json:356
  • Draft comment:
    The key 'Failed to mute channel' remains untranslated in English. It should be translated to Italian, for example 'Attivazione del mute del canale non riuscita' or similar.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
79. static/translations/messages_it.json:358
  • Draft comment:
    The key 'Failed to unmute channel' is still in English. It should be translated (e.g., 'Disattivazione del mute del canale non riuscita').
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
80. static/translations/messages_it.json:446
  • Draft comment:
    The key 'Copy link to channel' remains in English. It should be translated into Italian (e.g., 'Copia il link al canale').
  • Reason this comment was not posted:
    Comment was on unchanged code.
81. static/translations/messages_it.json:436
  • Draft comment:
    The key 'Uploading {fileName}...' is still in English. It should be translated to Italian (e.g., 'Caricamento di {fileName}...').
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
82. static/translations/messages_ja.json:129
  • Draft comment:
    Typographical error: The translation for 'Server not supported' has a trailing space ('サーバーが対応していません '). It should be trimmed to remove the extra space.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
83. static/translations/messages_ja.json:273
  • Draft comment:
    Typographical error: The translation for 'Failed to disable notifications' is written as '通知をオフにできませんした'. It likely should be '通知をオフにできませんでした' to conform with proper Japanese grammar.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
84. static/translations/messages_ja.json:436
  • Draft comment:
    Typographical issue: There is a case mismatch in the variable placeholder. The key uses '{fileName}' while the translation uses '{filename}'. The variable names should match exactly.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
85. static/translations/messages_ko.json:324
  • Draft comment:
    The translation for 'Legal' currently is "허용하는 " and has a trailing space. This looks off. Consider revising the translation.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
86. static/translations/messages_ko.json:414
  • Draft comment:
    The translation for 'No topics found' is "주제가 발견 되지 않음". It would be more natural to use "발견되지 않음" (without a space) for proper spacing.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
87. static/translations/messages_ko.json:417
  • Draft comment:
    In the translation for 'Please choose recipients to share with.' the phrase "선택 하세요" appears with an extra space. It should be "선택하세요".
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
88. static/translations/messages_ko.json:425
  • Draft comment:
    The translation for 'In a meeting' is "회의 안 에서". It should likely be "회의 안에서" to remove the unnecessary space.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
89. static/translations/messages_ko.json:421
  • Draft comment:
    The translation for "Couldn’t load information about {fullName}" is "{fullName}에 대한 정보를 가져올수 없음". Consider changing "가져올수" to "가져올 수".
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
90. static/translations/messages_ml.json:136
  • Draft comment:
    The translation for 'Home' (line 136) contains a trailing whitespace ('ഹോം '). Please remove the extra space to maintain consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
91. static/translations/messages_ml.json:145
  • Draft comment:
    The translation for 'No messages' (line 145) has a trailing whitespace ('മെസ്സേജുകൾ ഇല്ല '). Please remove the extra space.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
92. static/translations/messages_ml.json:146
  • Draft comment:
    The translation for 'No messages on server' (line 146) contains a trailing whitespace ('സെർവറിൽ മെസ്സേജുകൾ ഇല്ല '). It would be cleaner to remove the extra space.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
93. static/translations/messages_mn.json:191
  • Draft comment:
    Extra spaces detected in the translation string at line 191: "Энэ цаг таны байгаа бүс. “{originalText}”.". Please remove the extra spaces to maintain consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
94. static/translations/messages_mn.json:443
  • Draft comment:
    The translation for 'Copy link to topic' at line 443 seems truncated: "Сэдвийн ". Consider providing the complete translation to ensure clarity.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
95. static/translations/messages_nl.json:47
  • Draft comment:
    Typographical error: The translation for 'You' is written as 'JIj'. It should be corrected to 'Jij'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
96. static/translations/messages_nl.json:337
  • Draft comment:
    Typographical error: The translation for 'Star message' contains a double space ('Bericht ster geven'). Please remove the extra space to ensure consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
97. static/translations/messages_nl.json:340
  • Draft comment:
    Typographical error: The translation for 'Message copied' is written as 'Bericht gekopieërd'. It appears that the diacritic on the 'e' is misplaced. It should likely be 'gekopieerd'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
98. static/translations/messages_nl.json:263
  • Draft comment:
    Typographical error: The translation for 'Ukrainian' is given as 'Oekrains'. In Dutch, it is typically spelled 'Oekraïens'. Please check and update accordingly.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
99. static/translations/messages_pl.json:83
  • Draft comment:
    Typographical error: In line L83, 'Prywatny, otwarta historia' should be corrected to 'Prywatna, otwarta historia' (or another adjective agreement that matches 'historia').
  • Reason this comment was not posted:
    Comment was on unchanged code.
100. static/translations/messages_pt.json:25
  • Draft comment:
    Typographical error: 'Não foi possivel abrir imagem' should be 'Não foi possível abrir imagem'.
  • Reason this comment was not posted:
    Comment was on unchanged code.
101. static/translations/messages_pt.json:27
  • Draft comment:
    Typographical error: 'Não foi possível abrie o link' should be 'Não foi possível abrir o link'.
  • Reason this comment was not posted:
    Comment was on unchanged code.
102. static/translations/messages_pt.json:37
  • Draft comment:
    Typographical error: 'não estão disponivel para mensagens do Bot de Notificações.' should be 'não estão disponíveis para mensagens do Bot de Notificações.'
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
103. static/translations/messages_pt.json:38
  • Draft comment:
    Typographical error: 'Não foi possivel carregar dados.' should be 'Não foi possível carregar dados.'
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
104. static/translations/messages_ro.json:349
  • Draft comment:
    In the entry for "Failed to star message" (line 349), the translation reads "Am eșuat să pun stea mesajului". It appears to be missing the article 'a' – it should likely read "Am eșuat să pun steaua mesajului" for consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
105. static/translations/messages_ro.json:350
  • Draft comment:
    In the entry for "Failed to unstar message" (line 350), the translation uses "Am eușuat să elimin steaua mesajului". The word "eușuat" seems to be a typo; it should be "eșuat" to match similar entries.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
106. static/translations/messages_ro.json:351
  • Draft comment:
    Similarly, in the entry for "Failed to show reactions" (line 351), the translation uses "Am eușuat să afișez reacțiile". Please correct "eușuat" to "eșuat" for consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
107. static/translations/messages_ro.json:433
  • Draft comment:
    In the entry for "Remove account" (line 433), the translation reads "Sterge contul" without the proper Romanian diacritic. It should likely be "Șterge contul" to match correct Romanian spelling.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
108. static/translations/messages_ru.json:83
  • Draft comment:
    In the translation for "Private, shared history", the adjectives are mismatched: "Закрытый, открытая история переписки". Since 'история переписки' is feminine, both adjectives should ideally be in feminine form (e.g. "Закрытая, открытая история переписки") for consistency.
  • Reason this comment was not posted:
    Comment was on unchanged code.
109. static/translations/messages_ru.json:431
  • Draft comment:
    There is a trailing space at the end of the translation for "This message was hidden because it is from a user you have muted. Long-press to view.". It might be better to remove it for consistency.
  • Reason this comment was not posted:
    Comment was on unchanged code.
110. static/translations/messages_ru.json:435
  • Draft comment:
    The translation for "Oops! Something went wrong." has a trailing space at the end. Please remove the extra space to maintain consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
111. static/translations/messages_ru.json:316
  • Draft comment:
    The translation for "Other accounts" reads as "Другие учетные записи." with a trailing period. Consider removing the period if it is inconsistent with other similar entries.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
112. static/translations/messages_sr.json:110
  • Draft comment:
    Typographical error: In the translation "Да би сте поставили слику, молим вас омогућите Зулипу додатне дозволе у подешавањима.", please fix the spacing by changing "Да би сте" to "Да бисте".
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
113. static/translations/messages_sv.json:368
  • Draft comment:
    The Swedish translation for 'Normal users' is written as 'Vanliga anävndare'. It appears to contain a typo; it should be 'Vanliga användare'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
114. static/translations/messages_sv.json:163
  • Draft comment:
    The Swedish phrase for 'Add new account' is written as 'Lägg till en ny konto'. In Swedish, the noun 'konto' is neuter, so it should use 'ett' (i.e., 'Lägg till ett konto') or be rephrased as 'Lägg till nytt konto'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
115. static/translations/messages_tr.json:434
  • Draft comment:
    Typo: The placeholder appears as {realmURl} in the string. It should be {realmUrl} to maintain consistency.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
116. static/translations/messages_tr.json:207
  • Draft comment:
    Typo: The translation for 'Unmute stream' uses 'sesliye' which seems incorrect. Consider correcting it to a more suitable term like 'sesini aç' or the proper phrase as used consistently in other parts of the file.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
117. static/translations/messages_tr.json:208
  • Draft comment:
    Typo: The translation for 'Unmute channel' also uses 'sesliye' which appears to be a typographical error. Consider revising it to a more appropriate term such as 'sesini aç' or another correct form consistent with the rest of the translations.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
118. static/translations/messages_zh_TW.json:343
  • Draft comment:
    Typo detected: '新增反正失敗' should be corrected to '新增反應失敗'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
119. static/translations/messages_zh_TW.json:366
  • Draft comment:
    Typographical error: The string for 'hide' contains an unexpected escape sequence ("\b"). Please remove the '\b' to only display '隱藏'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
120. tools/checkout-keystore:27
  • Draft comment:
    Typo: In the usage message at line 27, remove the extra space before the comma after '~/.config/sq/KEYNAME.key.pgp'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
121. tools/checkout-keystore:33
  • Draft comment:
    Typo: In the usage instructions at line 33, remove the extra space before the period following 'docs/howto/release.md'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.

Workflow ID: wflow_xhRLvdl7MLT3LyYm

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

"Please specify a topic.": "يرجى تحديد الموضوع.",
"Please specify a stream.": "الرجاء تحديد غرفة.",
"Please specify a channel.": "Please specify a channel.",
"Please specify a channel.": "من فضل حدد قناة",
Copy link

Choose a reason for hiding this comment

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

Typo/Consistency: On line 121, 'من فضل حدد قناة' should be updated to 'من فضلك حدد قناة' to maintain consistency with other translations.

Suggested change
"Please specify a channel.": "من فضل حدد قناة",
"Please specify a channel.": "من فضلك حدد قناة",

"Resolve topic": "Resolve topic",
"Failed to resolve topic": "Failed to resolve topic",
"Unresolve topic": "Unresolve topic",
"Unresolve topic": "Маркирай темата като неразрешена:",
Copy link

Choose a reason for hiding this comment

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

Typo: The translation for 'Unresolve topic' ends with a colon ('Маркирай темата като неразрешена:'), which seems inconsistent with other similar entries. Please verify if the colon is intended or should be removed.

Suggested change
"Unresolve topic": "Маркирай темата като неразрешена:",
"Unresolve topic": "Маркирай темата като неразрешена",

"Text copied": "Text copied",
"Copied": "Zkopírováno",
"Copy invalid link": "Kopírovat neplatný odkaz",
"This link appears to be invalid. Do you want to copy it anyway?\n\n{text}": "Tento odkaz se zdá být neplatný. Ppřesto ho chcete zkopírovat??\n\n{text}",
Copy link

Choose a reason for hiding this comment

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

Typographical error: The translation for the invalid link message has 'Ppřesto' with an extra 'p' and ends with double question marks. It should likely read "Přesto ho chcete zkopírovat?".

Suggested change
"This link appears to be invalid. Do you want to copy it anyway?\n\n{text}": "Tento odkaz se zdá být neplatný. Ppřesto ho chcete zkopírovat??\n\n{text}",
"This link appears to be invalid. Do you want to copy it anyway?\n\n{text}": "Tento odkaz se zdá být neplatný. Přesto ho chcete zkopírovat?\n\n{text}",

"topic": "emne",
"Notify stream": "Notificer emne",
"Notify channel": "Notify channel",
"Notify channel": "Underet kanal",
Copy link

Choose a reason for hiding this comment

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

The translation for 'Notify channel' is given as "Underet kanal". It seems like a typo; perhaps it should be "Underret kanal" or another appropriate Danish term for notifying. Please confirm the correct translation.

Suggested change
"Notify channel": "Underet kanal",
"Notify channel": "Underret kanal",

"Mute channel": "Gør kanal stille",
"Unmute stream": "Tænd kanallyd",
"Unmute channel": "Unmute channel",
"Unmute channel": "Mute kanal",
Copy link

Choose a reason for hiding this comment

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

The translation for 'Unmute channel' is provided as "Mute kanal" which appears incorrect. 'Unmute' should translate to something like "Tænd kanal" or similar, rather than reusing 'Mute'. Please double-check and correct the translation.

Suggested change
"Unmute channel": "Mute kanal",
"Unmute channel": "Tænd kanal",

"Private, shared history": "Приватна, спільна історія",
"Must be invited by a subscriber; new subscribers can view complete message history; hidden from non-administrator users": "Має бути запрошений підписником; нові підписники можуть переглядати повну історію повідомлень; прихований від користувачів, які не є адміністраторами",
"Private, protected history": "Приватна, захищена історія",
"Must be invited by a subscriber; new subscribers can only see messages sent after they join; hidden from non-administrator users": "Повинен бути запрошений підписником; нові підписникии можуть бачити повідомлення, відправлені тільки після приєднання; прихований від користувачів без прав адміністратора",
Copy link

Choose a reason for hiding this comment

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

Typo detected: In the text, нові підписникии contains an extra 'и'. It should be corrected to нові підписники.

Suggested change
"Must be invited by a subscriber; new subscribers can only see messages sent after they join; hidden from non-administrator users": "Повинен бути запрошений підписником; нові підписникии можуть бачити повідомлення, відправлені тільки після приєднання; прихований від користувачів без прав адміністратора",
"Must be invited by a subscriber; new subscribers can only see messages sent after they join; hidden from non-administrator users": "Повинен бути запрошений підписником; нові підписники можуть бачити повідомлення, відправлені тільки після приєднання; прихований від користувачів без прав адміністратора",

"Cannot subscribe to channel": "Неможливо підписатися на канал",
"Stream #{name} is private.": "Канал #{name} є приватним.",
"Channel #{name} is private.": "Канал #{name} є приватним.",
"See details": "Диви\\тися деталі",
Copy link

Choose a reason for hiding this comment

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

Typo in the translation: "Диви\тися деталі" appears to contain an unnecessary backslash. Consider replacing it with "Дивитися деталі".

Suggested change
"See details": "Диви\\тися деталі",
"See details": "Дивитися деталі",

"Uploading {fileName}...": "Завантаження {fileName}...",
"Failed to upload file: {fileName}": "Не вдалося завантажити файл: {fileName}",
"The server said the file is too large.": "Сервер сказав, що файл завеликий.",
"The server said:\n\n{errorMessage}": "Сервер сказав::\n\n{errorMessage}",
Copy link

Choose a reason for hiding this comment

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

Typographical error: The translation for the message includes a double colon Сервер сказав::. It should likely be Сервер сказав: with a single colon.

Suggested change
"The server said:\n\n{errorMessage}": "Сервер сказав::\n\n{errorMessage}",
"The server said:\n\n{errorMessage}": "Сервер сказав:\n\n{errorMessage}",

"French": "người Pháp",
"Galician": "Galicia",
"German": "tiếng Đức",
"Greek": "Greek",
Copy link

Choose a reason for hiding this comment

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

The new entry for 'Greek' currently has the value "Greek". It appears to be untranslated. Consider replacing it with the appropriate Vietnamese translation (e.g., "Hy Lạp") to ensure consistency in the translations.

Suggested change
"Greek": "Greek",
"Greek": "Hy Lạp",

"Direct messages": "私信",
"Starred": "标星消息",
"Combined feed": "综合信息",
"Direct messages": "Direct messages",
Copy link

Choose a reason for hiding this comment

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

The label for 'Direct messages' is still in English. For consistency with the rest of the file (which uses Chinese translations for similar strings), please update this string to the proper Chinese term (likely '私信').

Suggested change
"Direct messages": "Direct messages",
"Direct messages": "私信",

@dashwave
Copy link

dashwave bot commented May 13, 2025

Build Status ✅ Successful
Build Time
📱 Emulation Link Emulation Unavailable - See here for more details
Logs See Logs
Open in Workspace Dashwave Workspace

@dashwave
Copy link

dashwave bot commented May 13, 2025

Build Status ✅ Successful
Build Time 18m55s
📱 Emulation Link https://console.dashwave.io/emulator/18055/preview?device=emulator
Logs See Logs
Open in Workspace Dashwave Workspace

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