-
-
Notifications
You must be signed in to change notification settings - Fork 366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🌐 New Crowdin updates #1471
🌐 New Crowdin updates #1471
Conversation
[ci skip]
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 2 Skipped Deployments
|
WalkthroughThis pull request enhances localization across multiple languages by adding and updating string entries in various JSON files. The Korean localization for email templates is expanded with new messages related to event finalization and participant notifications. The German localization is updated to correct a term, while the Spanish localizations are improved with both updates to existing strings and the addition of new entries, ensuring clarity and accuracy in user communications. Changes
Possibly related PRs
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (1)
packages/emails/locales/ko/emails.json (1)
3-3
: Remove extra space in Korean textThere's a double space after "싶으시면" that should be removed for consistent formatting.
- "common_disableNotifications": "업데이트 수신을 중단하고 싶으시면 <a>알림을 끄셔도 됩니다.</a>.", + "common_disableNotifications": "업데이트 수신을 중단하고 싶으시면 <a>알림을 끄셔도 됩니다.</a>.",
"common_poweredBy": "Powered by <a>{{domain}}</a>", | ||
"common_disableNotifications": "업데이트 수신을 중단하고 싶으시면 <a>알림을 끄셔도 됩니다.</a>.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Missing translations in Thai (th) and Vietnamese (vi) locale files
The verification revealed that the translation strings common_poweredBy
and common_disableNotifications
are missing in:
- packages/emails/locales/th/emails.json
- packages/emails/locales/vi/emails.json
These keys need to be added to maintain consistency across all locale files.
🔗 Analysis chain
Verify translations across all locale files
Let's ensure these new strings are consistently added across all locale files.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for the presence and consistency of these new strings across all locale files
# Find all emails.json files in locale directories
fd emails.json packages/emails/locales -x echo "=== {} ===" \; cat {}
# Check if the new keys exist in all locale files
echo "\nChecking for missing keys..."
for locale_file in $(fd emails.json packages/emails/locales); do
echo "Checking $locale_file"
jq 'has("common_poweredBy") and has("common_disableNotifications")' "$locale_file"
done
Length of output: 9203
@@ -1,3 +1,5 @@ | |||
{ | |||
"common_poweredBy": "Powered by <a>{{domain}}</a>", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Text needs to be translated to Korean
The "Powered by" text is still in English within the Korean locale file. Consider translating it to Korean for consistency.
Suggested translation (to be verified by a Korean speaker):
- "common_poweredBy": "Powered by <a>{{domain}}</a>",
+ "common_poweredBy": "<a>{{domain}}</a> 제공",
Committable suggestion skipped: line range outside the PR's diff.
[ci skip]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
packages/emails/locales/ko/emails.json (1)
5-5
: Consider removing duplicate contentThe content in
finalizeHost_content2
appears to be duplicated fromfinalizeHost_preview
. Consider removing the duplication to maintain consistency and ease of maintenance."finalizeHost_preview": "최종 예약 날짜입니다! 참가자들에게 공지하고 캘린더 초대장을 보냈습니다.", "finalizeHost_heading": "최종 예약 날짜!", - "finalizeHost_content2": "참가자들에게 공지하고 캘린더 초대장을 보냈습니다.",
Also applies to: 7-7
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
packages/emails/locales/ko/emails.json
(1 hunks)
🔇 Additional comments (5)
packages/emails/locales/ko/emails.json (5)
2-2
: Text needs to be translated to Korean
The "Powered by" text is still in English within the Korean locale file. Consider translating it to Korean for consistency.
3-3
: LGTM: Properly translated notification message
The translation is complete and maintains the correct HTML tag structure.
4-6
: LGTM: Well-structured host notification translations
The translations are complete and maintain proper HTML formatting and variable interpolation.
Also applies to: 8-9
10-14
: Verify the grammatical particle after {{hostName}}
The translations look good overall, but please verify if the particle "는" after {{hostName}} in finalizeParticipant_content
is grammatically correct for all possible host names. Some Korean names might require "이" or "가" instead.
15-15
: LGTM: Properly translated login button text
The translation is complete and maintains proper variable interpolation.
"common_poweredBy": "Powered by <a>{{domain}}</a>", | ||
"common_disableNotifications": "업데이트 수신을 중단하고 싶으시면 <a>알림을 끄셔도 됩니다.</a>.", | ||
"finalizeHost_content": "<b>{{title}}</b> 예약이 완료되었습니다", | ||
"finalizeHost_preview": "최종 예약 날짜입니다! 참가자들에게 공지하고 캘린더 초대장을 보냈습니다.", | ||
"finalizeHost_heading": "최종 예약 날짜!", | ||
"finalizeHost_content2": "참가자들에게 공지하고 캘린더 초대장을 보냈습니다.", | ||
"finalizeHost_button": "이벤트 보기", | ||
"finalizeHost_subject": "{{title}}에 예약된 날짜", | ||
"finalizeParticipant_content": "<b>{{hostName}}</b>는 다음 날짜에 <b>{{title}}</b>를 예약했습니다", | ||
"finalizeParticipant_preview": "최종 예약 날짜!", | ||
"finalizeParticipant_heading": "최종 예약 날짜!", | ||
"finalizeParticipant_content2": "이 이벤트에 대한 캘린더 초대장을 첨부해 드렸습니다.", | ||
"finalizeParticipant_subject": "{{title}}에 예약된 날짜", | ||
"login_button": "{{domain}}에 로그인합니다", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Missing translations in Thai (th) and Vietnamese (vi) locale files
The verification confirms that the following translations are missing in both Thai and Vietnamese locale files:
- common_poweredBy
- common_disableNotifications
- finalizeHost_content
- finalizeParticipant_content
- login_button
Please add these translations to maintain consistency across all locales.
🔗 Analysis chain
Verify translations in all locale files
These new strings need to be added to all locale files to maintain consistency. Previous review identified missing translations in Thai (th) and Vietnamese (vi) locale files.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for missing translations in all locale files
# Find all locale files and check for the new keys
for locale_file in $(fd emails.json packages/emails/locales); do
echo "=== Checking $locale_file ==="
jq '
def check_key($key):
if has($key) then
empty
else
$key
end;
[
check_key("common_poweredBy"),
check_key("common_disableNotifications"),
check_key("finalizeHost_content"),
check_key("finalizeParticipant_content"),
check_key("login_button")
] | select(length > 0)
' "$locale_file"
done
Length of output: 15752
[ci skip]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
apps/web/public/locales/es/app.json (1)
267-275
: Maintain consistent capitalization in UI stringsWhile the translations are accurate, there's inconsistency in the capitalization of the first word in some strings:
- "Remover" (starts with capital)
- "Cargar" (starts with capital)
- "Por favor, sube..." (starts with capital)
Consider standardizing the capitalization across these UI strings.
- "removeAvatar": "Remover", - "uploadProfilePicture": "Cargar", + "removeAvatar": "remover", + "uploadProfilePicture": "cargar",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
apps/landing/public/locales/es/common.json
(1 hunks)apps/web/public/locales/es/app.json
(1 hunks)
🔇 Additional comments (5)
apps/landing/public/locales/es/common.json (2)
20-21
: LGTM! Improved Spanish translations
The changes improve the natural flow and correctness of the Spanish translations:
- "alternativa a" is the correct preposition usage in Spanish when referring to alternatives
- The word order in "Encuesta de programación gratuita" follows a more natural Spanish structure
26-28
: LGTM! Consistent translation patterns
The new translations maintain consistency with existing patterns:
- "Alternativa a When2Meet" follows the same structure as "alternativa a Doodle"
- "Encuesta de reunión" aligns with the translation pattern used for other poll types
apps/web/public/locales/es/app.json (3)
266-266
: LGTM: Annual benefit string is properly formatted
The translation is grammatically correct and properly uses the {count} parameter.
276-279
: LGTM: Feature names are well translated
The feature name translations are clear, consistent with existing terminology, and maintain professional tone.
280-281
: Verify percentage symbol formatting
The translation looks good, but let's verify if there should be a space before the % symbol according to Spanish typography rules.
✅ Verification successful
Percentage formatting is consistent with Spanish conventions
The current formatting without a space before the % symbol in "Guardar {percentage}%" is correct according to Spanish typography rules. In Spanish, unlike some other languages (such as Finnish, Norwegian, or Japanese shown in the results), the percentage symbol is typically written immediately after the number without a space. The current implementation follows this convention and is consistent with other Romance languages in the codebase (Portuguese, French) which use the same pattern.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for other percentage formatting in Spanish localization files
rg -g '*.json' '".*%.*"' apps/web/public/locales/es/
Length of output: 134
Script:
#!/bin/bash
# Let's check other locale files to see how percentage is formatted in other languages
rg -g '*.json' '"savePercentage"' apps/web/public/locales/
Length of output: 1503
[ci skip]
[ci skip]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
apps/landing/public/locales/es/pricing.json (1)
2-2
: Maintain consistent capitalization in Spanish translationsThe following translations have inconsistent sentence capitalization:
- Line 2: "Comienza" (starts with capital)
- Line 9: "¿Por qué debería" (starts with capital after question mark)
- Line 11: "Para mejorar" (starts with capital)
In Spanish, sentences typically don't start with a capital letter after colons or question marks unless they're proper nouns.
- "pricingDescription": "Comienza a utilizarlo gratis. No se necesita iniciar sesión.", + "pricingDescription": "comienza a utilizarlo gratis. No se necesita iniciar sesión.", - "whyUpgrade": "¿Por qué debería mejorar a un plan de pago?", + "whyUpgrade": "¿por qué debería mejorar a un plan de pago?", - "howToUpgradeAnswer": "Para mejorar, puedes ir a tu <a>configuración de facturación</a>...", + "howToUpgradeAnswer": "para mejorar, puedes ir a tu <a>configuración de facturación</a>...",Also applies to: 9-9, 11-11
apps/landing/public/locales/es/home.json (2)
28-29
: Review meta titles and descriptions for SEO optimizationThe meta titles and descriptions should be optimized for SEO:
Meta titles should ideally be 50-60 characters:
- "Crea una encuesta de programación gratis al instante | No se necesita una cuenta" (73 chars)
- "Mejor alternativa a When2Meet: Rallly" (35 chars - too short)
Meta descriptions should be 150-160 characters:
- Line 29: Current length is 119 characters
- Line 37: Current length is 134 characters
- Line 43: Current length is 99 characters
Consider:
- Shortening long meta titles by removing less important information
- Expanding short meta descriptions with more relevant keywords and value propositions
- Adding relevant keywords near the beginning of meta descriptions
Would you like me to propose specific optimizations for each meta title and description?
Also applies to: 36-37, 42-43
17-18
: Fix extra whitespace in translation stringThere are extra spaces at the end of the
doodleAlternativeDescription
string.- "doodleAlternativeDescription": "Rallly es la alternativa a Doodle que todo el mundo está buscando. Miles de usuarios ya han hecho el cambio y ahora disfrutan de encuestas profesionales sin anuncios en una interfaz intuitiva y fácil de usar. ", + "doodleAlternativeDescription": "Rallly es la alternativa a Doodle que todo el mundo está buscando. Miles de usuarios ya han hecho el cambio y ahora disfrutan de encuestas profesionales sin anuncios en una interfaz intuitiva y fácil de usar.",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
apps/landing/public/locales/es/home.json
(2 hunks)apps/landing/public/locales/es/pricing.json
(2 hunks)packages/emails/locales/es/emails.json
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- packages/emails/locales/es/emails.json
🔇 Additional comments (2)
apps/landing/public/locales/es/pricing.json (1)
31-33
: LGTM: New pricing title translations
The newly added pricing title and subtitle translations are clear and maintain consistent messaging with the English version.
apps/landing/public/locales/es/home.json (1)
13-14
: LGTM: Correct usage of ICU MessageFormat
The translations correctly implement the ICU MessageFormat for number formatting with the compact-short notation:
"statsUsersRegistered": "{count, number, ::compact-short}+ usuarios registrados",
"statsPollsCreated": "{count, number, ::compact-short}+ encuestas creadas"
Summary by CodeRabbit