Skip to content

Translations update from Hosted Weblate - #954

Merged
leits merged 8 commits into
leits:masterfrom
weblate:weblate-meetingbar-app
Aug 14, 2026
Merged

leits merged 8 commits into
leits:masterfrom
weblate:weblate-meetingbar-app

Conversation

@weblate

@weblate weblate commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Translations update from Hosted Weblate for MeetingBar/App.

Current translation status:

Weblate translation status

Summary by CodeRabbit

  • Localization
    • Updated German, Japanese, and Brazilian Portuguese translations across settings, onboarding, status bar controls, calendar providers, and meeting-link options.
    • Improved wording for AppleScript and advanced settings, clipboard messages, event notifications, browser configuration, and Google Calendar setup.
    • Added localized onboarding navigation, setup guidance, essentials messaging, and advanced-settings sidebar labels.

Currently translated at 65.6% (229 of 349 strings)

Translation: MeetingBar/App
Translate-URL: https://hosted.weblate.org/projects/meetingbar/app/de/
@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Jul 19, 2026
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Updates German, Japanese, and Brazilian Portuguese localization across settings, calendar access, event messaging, browser and meeting-link controls, status-bar actions, and onboarding. It also adds or revises sidebar, setup, essentials, and meeting-opening strings.

Changes

Localization updates

Layer / File(s) Summary
Settings and link labels
MeetingBar/Resources/Localization/de.lproj/Localizable.strings, MeetingBar/Resources/Localization/ja.lproj/Localizable.strings, MeetingBar/Resources/Localization/pt-BR.lproj/Localizable.strings
Revises appearance, AppleScript, browser configuration, meeting-link, and advanced-settings wording.
Calendar and status messaging
MeetingBar/Resources/Localization/de.lproj/Localizable.strings, MeetingBar/Resources/Localization/ja.lproj/Localizable.strings, MeetingBar/Resources/Localization/pt-BR.lproj/Localizable.strings
Updates calendar provider, authorization, refresh, event, clipboard, dismissal, tentative-event, and status-bar messages.
Meeting opening and onboarding text
MeetingBar/Resources/Localization/de.lproj/Localizable.strings, MeetingBar/Resources/Localization/ja.lproj/Localizable.strings, MeetingBar/Resources/Localization/pt-BR.lproj/Localizable.strings
Updates meeting-opening modes, Google Calendar onboarding, sidebar labels, setup navigation, essentials content, and start actions.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • leits/MeetingBar#813: Updates the Japanese access_screen_provider_picker_label key.
  • leits/MeetingBar#947: Updates corresponding localization keys for status-bar time, meeting links, and clipboard messages.
  • leits/MeetingBar#949: Updates related settings, status-bar, clipboard, AppleScript, and meeting-link strings.

Suggested labels: lgtm

Suggested reviewers: leits

Poem

A rabbit checks each translated line,
German, Japanese, Portuguese shine.
Links and calendars hop in tune,
Onboarding welcomes every moon.
New labels leap into place!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: updating translations sourced from Hosted Weblate.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings:
- Line 394: Update the German localization value for onboarding_setup_title to
use an idiomatic compound noun, replacing the incorrect spaced “MeetingBar
Einrichtung” phrasing with “MeetingBar-Einrichtung” or the equivalent
“Einrichtung von MeetingBar.”
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 775a2f09-8157-40cb-b7db-428df34d4d32

📥 Commits

Reviewing files that changed from the base of the PR and between 26eef52 and c87d615.

📒 Files selected for processing (1)
  • MeetingBar/Resources /Localization /de.lproj/Localizable.strings

"preferences_appearance_menu_show_event_calendar_color_value" = "Kalenderfarbe";
"preferences_sidebar_advanced" = "Erweitert";
"preferences_appearance_status_bar_title_generic_value" = "Generischer Titel (Meeting)";
"onboarding_setup_title" = "MeetingBar Einrichtung";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use an idiomatic German compound noun.

“MeetingBar Einrichtung” should be “MeetingBar-Einrichtung” or “Einrichtung von MeetingBar”; the current spacing is grammatically incorrect in this user-facing heading.

Proposed fix
-"onboarding_setup_title" = "MeetingBar Einrichtung";
+"onboarding_setup_title" = "MeetingBar-Einrichtung";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"onboarding_setup_title" = "MeetingBar Einrichtung";
"onboarding_setup_title" = "MeetingBar-Einrichtung";
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings at line
394, Update the German localization value for onboarding_setup_title to use an
idiomatic compound noun, replacing the incorrect spaced “MeetingBar Einrichtung”
phrasing with “MeetingBar-Einrichtung” or the equivalent “Einrichtung von
MeetingBar.”

Currently translated at 71.9% (251 of 349 strings)

Translation: MeetingBar/App
Translate-URL: https://hosted.weblate.org/projects/meetingbar/app/de/
@dosubot dosubot Bot added size:M This PR changes 30-99 lines, ignoring generated files. and removed size:XS This PR changes 0-9 lines, ignoring generated files. labels Jul 22, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 7

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings:
- Line 188: Update the value of the "preferences_advanced_setting_warning"
localization key to use lowercase “fortgeschrittene” after “für”, while
preserving the rest of the German sentence.
- Line 59: Update the German localization value for
preferences_appearance_status_bar_time_title from the imperative wording to the
noun-phrase label “Uhrzeit anzeigen,” preserving the existing key and
formatting.
- Around line 344-345: Correct the German product-name typo in the
onboarding_google_calendar_title and onboarding_google_calendar_description
localization values, replacing “Google Kalendar” with “Google Kalender” while
leaving the surrounding text unchanged.
- Around line 291-296: Update the German localization values for
general_end_of_event_notification_toggle,
message_clipboard_invalid_title/message_clipboard_invalid_text, and
message_clipboard_empty_title/message_clipboard_empty_text to use the requested
grammatical wording, including explicit subjects and corrected sentence order.
- Around line 181-184: Update the German localization value for
preferences_advanced_run_script_on_event_start to use valid wording that
explicitly means running the AppleScript when a meeting starts, such as
“AppleScript beim Start eines Meetings ausführen.” Keep
preferences_advanced_apple_script_checkmark aligned with its existing meaning of
running upon entering a meeting.
- Around line 396-399: Update the four onboarding localization values identified
by onboarding_essentials_title, onboarding_essentials_description,
onboarding_essentials_hint, and onboarding_start_using to use formal German
wording consistently; correct the description grammar and use the approved
formal phrasing for selecting daily behavior, configuring meeting opening and
schedule tracking, changing settings later, and using MeetingBar.
- Around line 252-256: Update the German values for
access_screen_provider_macos_number_of_accounts,
access_screen_provider_gcalendar_data_source, and
access_screen_provider_gcalendar_number_of_accounts to use correct terminology
and grammar: “konfigurierte Konten,” “über die Google-Kalender-API,” and
“Google-Konto.”
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 13f163f9-a6fc-40a2-a0be-2cb0ed90b6aa

📥 Commits

Reviewing files that changed from the base of the PR and between c87d615 and cd2bd89.

📒 Files selected for processing (1)
  • MeetingBar/Resources /Localization /de.lproj/Localizable.strings

"preferences_appearance_status_bar_time_show_under_title_value" = "unter Titel anzeigen";
"preferences_appearance_status_bar_time_show_value" = "anzeigen";
"preferences_appearance_status_bar_time_title" = "Uhrzeit";
"preferences_appearance_status_bar_time_title" = "Zeige Uhrzeit";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use a noun phrase for this preference title.

“Zeige Uhrzeit” is an imperative and sounds awkward as a settings label. Use “Uhrzeit anzeigen” to match the surrounding option wording.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings at line 59,
Update the German localization value for
preferences_appearance_status_bar_time_title from the imperative wording to the
noun-phrase label “Uhrzeit anzeigen,” preserving the existing key and
formatting.

Comment on lines +181 to +184
"preferences_advanced_run_script_on_event_start" = "Starte das AppleScript vor betretbarem Meeting";
"preferences_advanced_test_script_on_next_event" = "Teste beim nächsten Termin";
"preferences_advanced_edit_script" = "Bearbeite das Script";
"preferences_advanced_apple_script_checkmark" = "AppleScript beim Betreten eines Meetings ausführen";
"preferences_advanced_apple_script_checkmark" = "AppleScript beim Betreten ausführen";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix the invalid AppleScript wording.

“vor betretbarem Meeting” is not valid German. Translate the event timing explicitly, for example “AppleScript beim Start eines Meetings ausführen” and “AppleScript beim Betreten eines Meetings ausführen,” as appropriate for each key.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings around
lines 181 - 184, Update the German localization value for
preferences_advanced_run_script_on_event_start to use valid wording that
explicitly means running the AppleScript when a meeting starts, such as
“AppleScript beim Start eines Meetings ausführen.” Keep
preferences_advanced_apple_script_checkmark aligned with its existing meaning of
running upon entering a meeting.

// MARK: - Preferences Advanced

"preferences_advanced_setting_warning" = "⚠️ Verwende diese Einstellungen nur, wenn Du verstehst was sie bewirken";
"preferences_advanced_setting_warning" = "Diese Einstellungen sind für Fortgeschrittene Benutzer vorgesehen";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use lowercase after “für”.

The sentence should read “Diese Einstellungen sind für fortgeschrittene Benutzer vorgesehen.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings at line
188, Update the value of the "preferences_advanced_setting_warning" localization
key to use lowercase “fortgeschrittene” after “für”, while preserving the rest
of the German sentence.

Comment on lines +252 to +256
"access_screen_provider_picker_label" = "Wähle eine Kalenderquelle aus";
"access_screen_provider_macos_data_source" = "Nutzt die MacOS Kalender App als Quelle der Daten";
"access_screen_provider_macos_number_of_accounts" = "Alle konfigurieren Konten: iCloud, Google, Exchange, CalDAV, und weitere";
"access_screen_provider_gcalendar_data_source" = "Verbindet direkt durch die Google Kalender API";
"access_screen_provider_gcalendar_number_of_accounts" = "Nur ein Google Account gleichzeitig";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Correct the calendar-provider terminology and grammar.

These strings contain multiple German errors, including “konfigurieren Konten,” “durch die Google Kalender API,” and “Google Account.” Suggested wording:

-"access_screen_provider_picker_label" = "Wähle eine Kalenderquelle aus";
-"access_screen_provider_macos_data_source" = "Nutzt die MacOS Kalender App als Quelle der Daten";
-"access_screen_provider_macos_number_of_accounts" = "Alle konfigurieren Konten: iCloud, Google, Exchange, CalDAV, und weitere";
-"access_screen_provider_gcalendar_data_source" = "Verbindet direkt durch die Google Kalender API";
-"access_screen_provider_gcalendar_number_of_accounts" = "Nur ein Google Account gleichzeitig";
+"access_screen_provider_picker_label" = "Kalenderquelle auswählen";
+"access_screen_provider_macos_data_source" = "Nutzt die macOS-Kalender-App als Datenquelle";
+"access_screen_provider_macos_number_of_accounts" = "Alle konfigurierten Konten: iCloud, Google, Exchange, CalDAV und weitere";
+"access_screen_provider_gcalendar_data_source" = "Verbindet sich direkt über die Google-Kalender-API";
+"access_screen_provider_gcalendar_number_of_accounts" = "Nur ein Google-Konto gleichzeitig";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"access_screen_provider_picker_label" = "Wähle eine Kalenderquelle aus";
"access_screen_provider_macos_data_source" = "Nutzt die MacOS Kalender App als Quelle der Daten";
"access_screen_provider_macos_number_of_accounts" = "Alle konfigurieren Konten: iCloud, Google, Exchange, CalDAV, und weitere";
"access_screen_provider_gcalendar_data_source" = "Verbindet direkt durch die Google Kalender API";
"access_screen_provider_gcalendar_number_of_accounts" = "Nur ein Google Account gleichzeitig";
"access_screen_provider_picker_label" = "Kalenderquelle auswählen";
"access_screen_provider_macos_data_source" = "Nutzt die macOS-Kalender-App als Datenquelle";
"access_screen_provider_macos_number_of_accounts" = "Alle konfigurierten Konten: iCloud, Google, Exchange, CalDAV und weitere";
"access_screen_provider_gcalendar_data_source" = "Verbindet sich direkt über die Google-Kalender-API";
"access_screen_provider_gcalendar_number_of_accounts" = "Nur ein Google-Konto gleichzeitig";
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings around
lines 252 - 256, Update the German values for
access_screen_provider_macos_number_of_accounts,
access_screen_provider_gcalendar_data_source, and
access_screen_provider_gcalendar_number_of_accounts to use correct terminology
and grammar: “konfigurierte Konten,” “über die Google-Kalender-API,” and
“Google-Konto.”

Comment on lines +291 to +296
"general_end_of_event_notification_toggle" = "Benachrichtigen am Ende des Ereignisses";
"timeline_accessibility_label" = "Zeitleiste mit %d Ereignissen";
"message_clipboard_invalid_title" = "Keine gültige URL";
"message_clipboard_invalid_text" = "Die Zwischenablage enthält keinen Meeting-Link, daher kann das Meeting nicht gestartet werden.";
"message_clipboard_invalid_title" = "Kein gültiger Link";
"message_clipboard_invalid_text" = "Kein Meeting-Link in der Zwischenablage, kann nicht gestartet werden.";
"message_clipboard_empty_title" = "Zwischenablage ist leer";
"message_clipboard_empty_text" = "Die Zwischenablage enthält keinen Inhalt, daher kann das Meeting nicht gestartet werden.";
"message_clipboard_empty_text" = "Zwischenablage ist leer, kann kein Meeting starten.";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Make the event-end and clipboard messages grammatical.

The current text omits subjects and uses an awkward word order. Prefer “Am Ende des Ereignisses benachrichtigen,” “In der Zwischenablage wurde kein gültiger Meeting-Link gefunden. Das Meeting kann nicht gestartet werden.”, and “Die Zwischenablage ist leer. Das Meeting kann nicht gestartet werden.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings around
lines 291 - 296, Update the German localization values for
general_end_of_event_notification_toggle,
message_clipboard_invalid_title/message_clipboard_invalid_text, and
message_clipboard_empty_title/message_clipboard_empty_text to use the requested
grammatical wording, including explicit subjects and corrected sentence order.

Comment on lines +344 to +345
"onboarding_google_calendar_title" = "Google Kalendar API";
"onboarding_google_calendar_description" = "Verbindet MeetingBar direkt mit Google Kalendar, ohne die macOS Kalender-App zu verwenden.";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix the “Kalendar” typo.

The German product name is “Google Kalender,” not “Google Kalendar.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings around
lines 344 - 345, Correct the German product-name typo in the
onboarding_google_calendar_title and onboarding_google_calendar_description
localization values, replacing “Google Kalendar” with “Google Kalender” while
leaving the surrounding text unchanged.

Comment on lines +396 to +399
"onboarding_essentials_title" = "Wähle das tägliche Verhalten";
"onboarding_essentials_description" = "Wähle Standards für öffnen von Meetings und im Zeitplan zu bleiben.";
"onboarding_essentials_hint" = "Du kannst jedes Detail in den Einstellungen später ändern.";
"onboarding_start_using" = "Beginne MeetingBar zu nutzen";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Keep onboarding formality and grammar consistent.

The surrounding onboarding strings use formal “Sie,” while these entries switch to informal “Wähle/Du.” Line 397 is also grammatically incorrect. Use consistent wording such as “Tägliches Verhalten auswählen,” “Legen Sie fest, wie Meetings geöffnet werden und wie Sie den Überblick behalten,” “Sie können jedes Detail später in den Einstellungen ändern,” and “MeetingBar verwenden.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /de.lproj/Localizable.strings around
lines 396 - 399, Update the four onboarding localization values identified by
onboarding_essentials_title, onboarding_essentials_description,
onboarding_essentials_hint, and onboarding_start_using to use formal German
wording consistently; correct the description grammar and use the approved
formal phrasing for selecting daily behavior, configuring meeting opening and
schedule tracking, changing settings later, and using MeetingBar.

Currently translated at 95.9% (335 of 349 strings)

Translation: MeetingBar/App
Translate-URL: https://hosted.weblate.org/projects/meetingbar/app/ja/
@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:M This PR changes 30-99 lines, ignoring generated files. labels Jul 23, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@MeetingBar/Resources` /Localization /ja.lproj/Localizable.strings:
- Line 248: Update the changed Japanese localization strings identified by
shared_send_notification_no_alert_style_tip and the additionally noted entries
to replace trailing ASCII periods with the Japanese full stop 。, preserving the
rest of each translation unchanged.
- Line 204: Update the Japanese localization for
status_bar_submenu_dismiss_meeting to use a hide/dismiss label such as
ミーティングを非表示 or ミーティングを隠す, avoiding wording that implies closing or ending the
meeting. Adjust the corresponding Japanese undismiss translation to mirror the
chosen hide action.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f58f63aa-ea49-40a0-862a-57238e7685a3

📥 Commits

Reviewing files that changed from the base of the PR and between cd2bd89 and bed232c.

📒 Files selected for processing (1)
  • MeetingBar/Resources /Localization /ja.lproj/Localizable.strings

"status_bar_submenu_attendees_status_unknown" = " [?]";
"status_bar_submenu_copy_meeting_link" = "ミーティングリンクをコピー";
"status_bar_submenu_dismiss_meeting" = "Dismiss meeting";
"status_bar_submenu_dismiss_meeting" = "ミーティングを閉じる";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== files =="
git ls-files | rg 'MeetingBar/Resources/Localization/ja.lproj/Localizable.strings|Localizable.strings' || true

echo "== target locale target line context =="
if [ -f "MeetingBar/Resources/Localization/ja.lproj/Localizable.strings" ]; then
  sed -n '190,210p' "MeetingBar/Resources/Localization/ja.lproj/Localizable.strings" | nl -ba -v190
fi

echo "== search key in source/strings =="
rg -n "status_bar_submenu_dismiss_meeting|dismiss_meeting|Dismiss" . --glob '!**/.git/**' || true

echo "== inspect nearby Japanese strings for punctuation =="
file="MeetingBar/Resources/Localization/ja.lproj/Localizable.strings"
for i in 248 404 418; do
  [ -f "$file" ] && rg -n ".{0,120}" "$file" | sed -n "${i}p"
done

echo "== parse .strings key-value and show related keys =="
python3 - <<'PY'
from pathlib import Path
p=Path('MeetingBar/Resources/Localization/ja.lproj/Localizable.strings')
if not p.exists():
    print('missing target file')
    raise SystemExit
text=p.read_text(encoding='utf-8')
for i,line in enumerate(text.splitlines(),1):
    if 'status_bar_submenu' in line or 'dismiss_meeting' in line:
        print(f"{i}: {line}")
PY

Repository: leits/MeetingBar

Length of output: 17885


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== MenuBuilder dismiss/undismiss context =="
rg -n -C 12 'status_bar_submenu_(dismiss|undismiss)_meeting|dismissNearestMeeting|undismissMeeting' MeetingBar/UI/StatusBar/MenuBuilder.swift || true

echo "== English strings context =="
sed -n '285,302p' MeetingBar/Resources/Localization/en.lproj/Localizable.strings | nl -ba -v285

echo "== all Japanese localizations =="
for f in $(git ls-files 'MeetingBar/Resources/Localization/*.lproj/Localizable.strings' | grep '^MeetingBar/Resources/Localization/.*/Localizable.strings$'); do
  echo "--- $f"
  rg -n 'status_bar_submenu_(dismiss|undismiss)_meeting|notification_next_meeting_dismissed_title' "$f" || true
done

echo "== inspect changed Japanese file lines 200-210 =="
sed -n '200,210p' "$PWD/MeetingBar/Resources /Localization/ja.lproj/Localizable.strings" | cat -An

Repository: leits/MeetingBar

Length of output: 2883


Use a true dismissal label for Japanese.

status_bar_submenu_dismiss_meeting is the event menu action that skips hiding the meeting from next-meeting flows; ミーティングを閉じる can make it look like closing/ending the meeting. Use wording such as ミーティングを非表示 or ミーティングを隠す and update undismiss to mirror that action.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /ja.lproj/Localizable.strings at line
204, Update the Japanese localization for status_bar_submenu_dismiss_meeting to
use a hide/dismiss label such as ミーティングを非表示 or ミーティングを隠す, avoiding wording that
implies closing or ending the meeting. Adjust the corresponding Japanese
undismiss translation to mirror the chosen hide action.

"general_three_minute_before" = "3分前";
"general_five_minute_before" = "5分前";
"shared_send_notification_no_alert_style_tip" = "⚠️ MeetingBar の macOS の通知設定は、通知パネルに設定されていません。持続的な通知を利用する場合は、通知パネルに設定してください。";
"shared_send_notification_no_alert_style_tip" = "注意: 通知はバナーにセットされますので、消失する前に簡単に表示されます。 それらを却下するまで、それらを画面に保つには、macOS通知設定でアラートに切り替えます.";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use Japanese punctuation consistently.

These changed strings end with ASCII . instead of the Japanese full stop , unlike the surrounding localized copy. Replace the trailing periods for consistent rendering.

Also applies to: 404-404, 418-418

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /ja.lproj/Localizable.strings at line
248, Update the changed Japanese localization strings identified by
shared_send_notification_no_alert_style_tip and the additionally noted entries
to replace trailing ASCII periods with the Japanese full stop 。, preserving the
rest of each translation unchanged.

andressltz and others added 3 commits August 5, 2026 22:01
Currently translated at 42.6% (149 of 349 strings)

Translation: MeetingBar/App
Translate-URL: https://hosted.weblate.org/projects/meetingbar/app/pt_BR/
Currently translated at 42.6% (149 of 349 strings)

Translation: MeetingBar/App
Translate-URL: https://hosted.weblate.org/projects/meetingbar/app/pt_BR/
Currently translated at 42.6% (149 of 349 strings)

Translation: MeetingBar/App
Translate-URL: https://hosted.weblate.org/projects/meetingbar/app/pt_BR/

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@MeetingBar/Resources` /Localization /pt-BR.lproj/Localizable.strings:
- Line 69: Update the Portuguese-Brazilian value for
preferences_appearance_events_tentative_title to use the existing
tentative-event terminology “Provisório,” matching the established wording at
the other localization entry.
- Line 329: Update the onboarding_google_calendar_title localization value to
use the established Brazilian Portuguese product name, changing “Google
Calendário” to “Google Agenda” while preserving the existing “API do” prefix.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d8bb258c-d4b3-4f2e-b2ad-a5ec7f74fce9

📥 Commits

Reviewing files that changed from the base of the PR and between bed232c and 4d42992.

📒 Files selected for processing (1)
  • MeetingBar/Resources /Localization /pt-BR.lproj/Localizable.strings

"preferences_appearance_events_pending_title" = "Eventos pendentes";
"preferences_appearance_events_declined_title" = "Eventos recusados:";
"preferences_appearance_events_tentative_title" = "Eventos provisórios:";
"preferences_appearance_events_tentative_title" = "Eventos sem confirmação:";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use consistent terminology for tentative events.

"Eventos sem confirmação" can mean events without any confirmation. The existing tentative status uses "Provisório" at Line 195. Use the same calendar term here.

Proposed fix
-"preferences_appearance_events_tentative_title" = "Eventos sem confirmação:";
+"preferences_appearance_events_tentative_title" = "Eventos provisórios:";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"preferences_appearance_events_tentative_title" = "Eventos sem confirmação:";
"preferences_appearance_events_tentative_title" = "Eventos provisórios:";
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MeetingBar/Resources` /Localization /pt-BR.lproj/Localizable.strings at line
69, Update the Portuguese-Brazilian value for
preferences_appearance_events_tentative_title to use the existing
tentative-event terminology “Provisório,” matching the established wording at
the other localization entry.

Comment thread MeetingBar/Resources /Localization /pt-BR.lproj/Localizable.strings Outdated
andressltz and others added 2 commits August 6, 2026 03:01
Currently translated at 51.0% (178 of 349 strings)

Translation: MeetingBar/App
Translate-URL: https://hosted.weblate.org/projects/meetingbar/app/pt_BR/
Currently translated at 73.0% (255 of 349 strings)

Translation: MeetingBar/App
Translate-URL: https://hosted.weblate.org/projects/meetingbar/app/zh_Hans/
@dosubot dosubot Bot added the lgtm This PR has been approved by a maintainer label Aug 14, 2026
@leits
leits merged commit 7e748b0 into leits:master Aug 14, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants