Skip to content

Update India holidays: improve Telugu translation#3401

Merged
arkid15r merged 6 commits intovacanza:devfrom
Kartheekmurala:localize/telugu-translations-india
Mar 26, 2026
Merged

Update India holidays: improve Telugu translation#3401
arkid15r merged 6 commits intovacanza:devfrom
Kartheekmurala:localize/telugu-translations-india

Conversation

@Kartheekmurala
Copy link
Copy Markdown
Contributor

Proposed change

Improved and refined Telugu holiday names to better match regional usage and linguistic accuracy.
Updated existing translations to ensure they are culturally appropriate and more commonly used across different regions.

These changes enhance localization quality and provide more accurate representations of holiday names for Telugu-speaking users.

Type of change

  • New country/market holidays support (thank you!)
  • Supported country/market holidays update (calendar discrepancy fix, localization)
  • Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
  • Dependency update (version deprecation/pin/upgrade)
  • Bugfix (non-breaking change which fixes an issue)
  • Breaking change (a code change causing existing functionality to break)
  • New feature (new holidays functionality in general)

Checklist

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 24, 2026

Summary by CodeRabbit

  • Localization

    • Updated Telugu holiday names to reflect corrected transliteration and naming (e.g., Buddha Purnima, Krishna Janmashtami, Guru Nanak Jayanti, Magh Bihu, Rakhi Pournami, Sri Rama Navami, Telugu/Tamil new year naming).
  • Tests

    • Updated test expectations to match the revised Telugu holiday name translations.

Walkthrough

This PR updates 12 Telugu translation strings in holidays/locale/te/LC_MESSAGES/IN.po and aligns test expectations in tests/countries/test_india.py to the new Telugu holiday names. No msgid keys or runtime code were changed.

Changes

Cohort / File(s) Summary
Telugu Holiday Translations
holidays/locale/te/LC_MESSAGES/IN.po
Updated 12 msgstr values (e.g., బుద్ధ పౌర్ణమి → బుద్ధ పూర్ణిమ, జన్మాష్టమి → కృష్ణాష్టమి, రక్షా బంధన్ → రాఖీ పౌర్ణమి, ఉళవర్ తిరునాల్ → రైతుల పండుగ, etc.). No msgid or code changes.
India tests (Telugu expectations)
tests/countries/test_india.py
Adjusted expected Telugu holiday names for multiple 2018 dates to match updated msgstr values and reordered compound labels (Uttarayan/Pongal/Bihu, Gudi Padwa/Ugadi, Palm Sunday/Ram Navami, Puthandu, etc.).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • KJhellico
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and clearly describes the main change: updating India holidays with improved Telugu translations.
Description check ✅ Passed The description is relevant to the changeset, explaining the rationale for improving Telugu holiday names and addressing localization quality.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a 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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@holidays/locale/te/LC_MESSAGES/IN.po`:
- Line 41: The Telugu translation contains an extra internal space in the
Independence Day msgstr; find the msgstr value "స్వాతంత్ర  దినోత్సవం" and
replace the double space with a single space so it becomes "స్వాతంత్ర
దినోత్సవం", ensuring the PO entry for that message is updated and saved.
🪄 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 611de90e-2575-471f-8d91-22f2dbc4cc0e

📥 Commits

Reviewing files that changed from the base of the PR and between bd01922 and ab2d30c.

📒 Files selected for processing (1)
  • holidays/locale/te/LC_MESSAGES/IN.po

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
holidays/locale/te/LC_MESSAGES/IN.po (1)

41-41: ⚠️ Potential issue | 🟡 Minor

Update msgstr to use the standard Telugu form for Independence Day.

The current form "స్వాతంత్ర దినోత్సవం" should be "స్వాతంత్ర్య దినోత్సవం" (with long య) to match the standard used in government and major media sources.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@holidays/locale/te/LC_MESSAGES/IN.po` at line 41, Replace the current msgstr
value "స్వాతంత్ర దినోత్సవం" with the standardized Telugu form "స్వాతంత్ర్య
దినోత్సవం" in the translation entry so the localized string matches government
and major media usage.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@holidays/locale/te/LC_MESSAGES/IN.po`:
- Line 41: Replace the current msgstr value "స్వాతంత్ర దినోత్సవం" with the
standardized Telugu form "స్వాతంత్ర్య దినోత్సవం" in the translation entry so the
localized string matches government and major media usage.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0d2cb880-cda1-4158-96df-5c232384b2f0

📥 Commits

Reviewing files that changed from the base of the PR and between ab2d30c and e7a2e6a.

📒 Files selected for processing (1)
  • holidays/locale/te/LC_MESSAGES/IN.po

@Kartheekmurala
Copy link
Copy Markdown
Contributor Author

Kartheekmurala commented Mar 24, 2026

Hi @KJhellico @arkid15r
I have updated the Telugu holiday names to better reflect regional usage. I would really appreciate it if you could review the changes and let me know if any modifications are needed.

Thank you!

@Kartheekmurala
Copy link
Copy Markdown
Contributor Author

The translation 'స్వాతంత్ర దినోత్సవం' is the commonly used form in the Andhra Pradesh region. As a native Telugu speaker from Andhra Pradesh, I have used the regionally accurate version. Happy to discuss further if needed.

♻️ Duplicate comments (1)

holidays/locale/te/LC_MESSAGES/IN.po (1)> 41-41: ⚠️ Potential issue | 🟡 Minor

Update msgstr to use the standard Telugu form for Independence Day.
The current form "స్వాతంత్ర దినోత్సవం" should be "స్వాతంత్ర్య దినోత్సవం" (with long య) to match the standard used in government and major media sources.

🤖 Prompt for AI Agents

Verify each finding against the current code and only fix it if needed.

In `@holidays/locale/te/LC_MESSAGES/IN.po` at line 41, Replace the current msgstr
value "స్వాతంత్ర దినోత్సవం" with the standardized Telugu form "స్వాతంత్ర్య
దినోత్సవం" in the translation entry so the localized string matches government
and major media usage.

🤖 Prompt for all review comments with AI agents

Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@holidays/locale/te/LC_MESSAGES/IN.po`:
- Line 41: Replace the current msgstr value "స్వాతంత్ర దినోత్సవం" with the
standardized Telugu form "స్వాతంత్ర్య దినోత్సవం" in the translation entry so the
localized string matches government and major media usage.

ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0d2cb880-cda1-4158-96df-5c232384b2f0

📥 Commits
Reviewing files that changed from the base of the PR and between ab2d30c and e7a2e6a.

📒 Files selected for processing (1)

@KJhellico KJhellico changed the title improved Telugu (te) translations for India (IN) holidays Update India holidays: improve Telugu translation Mar 25, 2026
@KJhellico
Copy link
Copy Markdown
Collaborator

@Kartheekmurala, tests need to be updated to reflect the changes made.

@Kartheekmurala
Copy link
Copy Markdown
Contributor Author

@Kartheekmurala, tests need to be updated to reflect the changes made.

I will get issue fixed asap

@Kartheekmurala
Copy link
Copy Markdown
Contributor Author

Hi @KJhellico, I’ve updated the Telugu l10n tests to reflect the changes made in the translations. All relevant tests now pass. Please let me know if any further adjustments are needed.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a 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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@tests/countries/test_india.py`:
- Line 940: Replace the non‑canonical Telugu string "స్వాతంత్ర దినోత్సవం" with
the canonical form "స్వాతంత్ర్య దినోత్సవం" in the test tuple ("2018-08-15",
"స్వాతంత్ర దినోత్సవం") and update the corresponding Telugu translation entry in
the IN.po message (the msgstr for the Independence Day msgid) to use the same
"స్వాతంత్ర్య దినోత్సవం" form so tests and localization match official sources.
🪄 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 7ebf5771-685a-4c5f-9176-e2b6d3d876a6

📥 Commits

Reviewing files that changed from the base of the PR and between e7a2e6a and ef6ca50.

📒 Files selected for processing (1)
  • tests/countries/test_india.py

@github-actions github-actions bot added the test label Mar 25, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 25, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (0cc5738) to head (1bb7326).
⚠️ Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff            @@
##               dev     #3401   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          310       310           
  Lines        18584     18584           
  Branches      2380      2380           
=========================================
  Hits         18584     18584           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Kartheekmurala
Copy link
Copy Markdown
Contributor Author

@KJhellico, Thank you for the clarification.

We will keep "స్వాతంత్య్ర దినోత్సవం" as it is for consistency.

Please let me know if any further modifications are needed. If everything looks good, kindly proceed with the merge.

Copy link
Copy Markdown
Collaborator

@KJhellico KJhellico left a comment

Choose a reason for hiding this comment

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

LGTM.

@Kartheekmurala
Copy link
Copy Markdown
Contributor Author

@KJhellico Thank you very much for the review and approval! I truly appreciate your guidance and thoughtful feedback throughout this process—it helped me better understand the project standards and improve my contribution. I’m glad to have this merged and look forward to contributing more.

Copy link
Copy Markdown
Collaborator

@PPsyrius PPsyrius left a comment

Choose a reason for hiding this comment

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

LGTM 🇮🇳

@Kartheekmurala
Copy link
Copy Markdown
Contributor Author

Kartheekmurala commented Mar 26, 2026

LGTM 🇮🇳

@PPsyrius
Thank you very much for the review and approval! I’m glad to have this merged and look forward to contributing more.

Copy link
Copy Markdown
Collaborator

@arkid15r arkid15r left a comment

Choose a reason for hiding this comment

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

Thanks for the contribution @Kartheekmurala !

@arkid15r arkid15r enabled auto-merge March 26, 2026 05:37
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a 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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@tests/countries/test_india.py`:
- Line 940: Update the test tuple in tests/countries/test_india.py that
currently uses the string "స్వాతంత్ర దినోత్సవం" (the tuple ("2018-08-15",
"స్వాతంత్ర దినోత్సవం")) to the approved form "స్వాతంత్య్ర దినోత్సవం", and make
the matching change to the msgstr for the same entry in
holidays/locale/te/LC_MESSAGES/IN.po so both test data and the locale
translation are identical.
🪄 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4c6d7bfe-2136-436d-8258-cc02d617acbe

📥 Commits

Reviewing files that changed from the base of the PR and between ef6ca50 and 1bb7326.

📒 Files selected for processing (1)
  • tests/countries/test_india.py

("2018-06-02", "తెలంగాణ అవతరణ దినోత్సవం"),
("2018-06-16", "ఈద్-ఉల్-ఫితర్; మహారాణా ప్రతాప్ జయంతి"),
("2018-08-15", "స్వాతంత్ర్య దినోత్సవం"),
("2018-08-15", "స్వాతంత్ర దినోత్సవం"),
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot Mar 26, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Update to the approved form per maintainer decision.

Line 940 shows "స్వాతంత్ర దినోత్సవం", but KJhellico's final decision in the review thread was to use "స్వాతంత్య్ర దినోత్సవం". Please update this line to match the approved form, and ensure the corresponding msgstr in holidays/locale/te/LC_MESSAGES/IN.po uses the same.

Fix to match approved form
-            ("2018-08-15", "స్వాతంత్ర దినోత్సవం"),
+            ("2018-08-15", "స్వాతంత్య్ర దినోత్సవం"),
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/countries/test_india.py` at line 940, Update the test tuple in
tests/countries/test_india.py that currently uses the string "స్వాతంత్ర
దినోత్సవం" (the tuple ("2018-08-15", "స్వాతంత్ర దినోత్సవం")) to the approved
form "స్వాతంత్య్ర దినోత్సవం", and make the matching change to the msgstr for the
same entry in holidays/locale/te/LC_MESSAGES/IN.po so both test data and the
locale translation are identical.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The translation 'స్వాతంత్ర దినోత్సవం' is the commonly used form in the Andhra Pradesh region. As a native Telugu speaker from Andhra Pradesh, I have used the regionally accurate version. Happy to discuss further if needed.

Which maintainers agreed to

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Fetch the PR comments to understand which maintainer approved which form
gh pr view 3401 --repo vacanza/holidays --comments | head -200

Length of output: 13724


🏁 Script executed:

#!/bin/bash
# Get more comments, specifically looking for the Independence Day spelling discussion
gh pr view 3401 --repo vacanza/holidays --comments | grep -A 20 -B 5 "స్వాతంత్"

Length of output: 6892


@PPsyrius, good catch — my prior review comment overstated KJhellico's position. Here is what the actual PR thread shows:

  1. I flagged "స్వాతంత్ర దినోత్సవం" and suggested "స్వాతంత్ర్య దినోత్సవం" (with long య as the government/media standard)
  2. The author defended "స్వాతంత్ర దినోత్సవం" as the regional AP form
  3. The author then stated they'd keep "స్వాతంత్య్ర దినోత్సవం" for consistency
  4. KJhellico approved with "LGTM" after that statement — but made no explicit comment about the specific spelling

So no maintainer explicitly approved "స్వాతంత్ర దినోత్సవం" (the form currently in the code). My prior comment incorrectly attributed KJhellico's LGTM as endorsing a specific form. I should not have framed it as KJhellico's "final decision."

There's also a discrepancy in the PR itself: the author's comment says they settled on "స్వాతంత్య్ర దినోత్సవం", but the committed code has "స్వాతంత్ర దినోత్సవం". These are different strings. The ultimate call on which form to accept rests with the project maintainers (@KJhellico, @arkid15r). I'll withdraw my prior claim about maintainer endorsement.


🧠 Learnings used
Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2881
File: tests/countries/test_indonesia.py:221-223
Timestamp: 2025-09-28T05:42:12.777Z
Learning: In tests/countries/test_indonesia.py, the manual set inclusion checks using get_named and years_found for Lunar New Year (test_lunar_new_year) and Vesak Day (test_vesak_day) are intentional and should remain until both holidays get their own `{insert}_no_estimated` flags implemented, rather than using standard harness assertions like assertHolidayName/assertNoHolidayName.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 2530
File: tests/countries/test_andorra.py:23-28
Timestamp: 2025-05-06T21:07:11.577Z
Learning: In the holidays project, test methods for country holidays follow a standard form where year ranges are explicitly recreated in each test method rather than being stored as class variables, to maintain consistency across all country tests.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 2834
File: tests/financial/test_national_stock_exchange_of_india.py:342-360
Timestamp: 2025-08-30T12:52:58.539Z
Learning: In the NSE holidays implementation, assertLocalizedHolidays should only include holidays that are actually observed (trading holidays), not holidays that fall on weekends and are excluded by the observed_rule. For example, Eid al-Fitr 2023 falls on Saturday and is correctly excluded from localization tests.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2881
File: tests/countries/test_south_africa.py:22-22
Timestamp: 2025-09-14T04:41:10.139Z
Learning: South Africa's observed holiday system only started in 1995, so in tests/countries/test_south_africa.py, using years_non_observed=range(1995, 2050) is intentional to limit testing to years where observed holidays actually exist, improving both correctness and performance.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 2834
File: tests/financial/test_national_stock_exchange_of_india.py:342-360
Timestamp: 2025-08-30T12:49:19.688Z
Learning: The assertLocalizedHolidays method in the vacanza/holidays project requires a complete list of all holidays for the specific year being tested, not just a subset. When testing localization, all holidays from that year must be included in the assertion.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 2398
File: tests/countries/test_guinea.py:237-239
Timestamp: 2025-04-02T18:38:35.164Z
Learning: In the vacanza/holidays project, the method assertLocalizedHolidays in country test files should be called with positional parameters rather than named parameters to maintain consistency with the rest of the codebase.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2416
File: tests/countries/test_turkmenistan.py:52-64
Timestamp: 2025-04-05T04:47:27.213Z
Learning: For holiday tests in the vacanza/holidays project, structure tests by individual holidays rather than by years. Each test method should focus on a specific holiday and test it across multiple years (from start_year through 2050) using helper methods like `assertHolidayName`. For fixed holidays, use generators like `(f"{year}-01-01" for year in range(1991, 2051))`. For movable holidays, specify individual dates for specific years followed by a range check.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2881
File: tests/countries/test_iran.py:28-28
Timestamp: 2025-09-14T16:05:55.205Z
Learning: In tests/countries/test_iran.py, using years=(self.start_year - 1, 2102) in the no-holiday test is intentional because Iran uses the Persian Calendar which has specific supported year range constraints, and 2102 represents the upper limit of the Persian Calendar's supported range, not just an arbitrary far-future date.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2881
File: tests/countries/test_saint_helena_ascension_and_tristan_da_cunha.py:209-209
Timestamp: 2025-09-14T17:17:14.387Z
Learning: In tests/countries/test_saint_helena_ascension_and_tristan_da_cunha.py, the explicit loop iteration pattern for subdivision-specific holiday checks (like Anniversary Day for TA subdivision) is intentionally preferred over using assertSubdivTa helper methods, as confirmed by PPsyrius.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2942
File: holidays/countries/south_africa.py:91-98
Timestamp: 2025-09-18T07:01:12.236Z
Learning: In the holidays library South Africa implementation, inline ternary operators for holiday name selection (like "Republic Day" if self._year >= 1961 else "Union Day") are intentionally kept inline rather than extracted to separate variables, as this structure is designed in preparation for future localization (l10n) support where the contextual relationship between conditions and translatable strings needs to be preserved.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 3327
File: holidays/locale/en_US/LC_MESSAGES/XK.po:0-0
Timestamp: 2026-03-12T22:39:34.558Z
Learning: In the vacanza/holidays project, en_US msgstr entries in .po files should use the internationally recognized common English name for a holiday (e.g., "Independence Day", "Constitution Day", "Eid al-Fitr", "Eid al-Adha"), not a literal translation of the full source-language msgid string (e.g., not "Independence Day of the Republic of Kosovo" even if the Albanian msgid includes the full official title). This is the established convention used across Bolivia, Bulgaria, Brazil, Guinea, Indonesia, Kazakhstan, Kyrgyzstan, Latvia, Tajikistan, Turkmenistan, Ukraine, and other countries.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 2960
File: holidays/locale/ca/LC_MESSAGES/ES.po:148-151
Timestamp: 2025-09-26T13:58:49.363Z
Learning: In the holidays project, when translating holiday names in .po files, the msgstr should be a faithful translation of the original msgid (in the country's default language), not influenced by English commentary or common en_US names. For example, "Día de la Pascua Granada" (Spanish) correctly translates to "Dia de la Pasqua Granada" (Catalan), even though the English comment refers to it as "Whit Monday".

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2794
File: holidays/groups/christian.py:328-343
Timestamp: 2025-08-11T10:14:28.517Z
Learning: For Ethiopian holidays in the `holidays/groups/christian.py` file, docstring wording should maintain source-accurate phrasing (e.g., "in coincidence of" for Ethiopian New Year/Enkutatash), even when it might read awkwardly in English, to ensure consistency with official Ethiopian documentation.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 2259
File: holidays/locale/en_IN/LC_MESSAGES/IN.po:285-299
Timestamp: 2025-03-08T11:28:48.652Z
Learning: In the holidays project, message IDs (msgids) in locale files use region-specific naming conventions (e.g., "Muharram", "Id-ul-Fitr" in en_IN locale for India), while translator comments use internationally recognized names from the project's default locale (en_US) such as "Ashura", "Eid al-Fitr". This difference is intentional for proper localization.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2537
File: holidays/countries/finland.py:249-253
Timestamp: 2025-05-10T04:02:13.815Z
Learning: Holiday name comments directly above tr() function calls in the holidays package should only contain the holiday name itself (e.g., "# Independence Day.") without any additional context, dates, or historical information.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2881
File: holidays/countries/south_africa.py:163-170
Timestamp: 2025-09-14T06:39:08.485Z
Learning: In South Africa's holidays implementation (holidays/countries/south_africa.py), the 2021 election uses the literal "Municipal elections" instead of the local_elections constant ("Local Government Elections") - this inconsistency is intentional and should not be flagged as an issue.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 3318
File: holidays/locale/th/LC_MESSAGES/IT.po:563-569
Timestamp: 2026-03-11T12:50:50.958Z
Learning: In `holidays/locale/th/LC_MESSAGES/IT.po`, the Thai translations for `Festa Nazionale` (National Holiday) and `Giorno Festivo` (Public Holiday) are intentionally identical (`วันหยุดพิเศษ (เพิ่มเติม)`). This is a deliberate localization simplification — the two Italian terms stem from different source wordings but are functionally equivalent for Thai speakers.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2881
File: tests/countries/test_albania.py:40-42
Timestamp: 2025-09-04T08:54:35.319Z
Learning: In the vacanza/holidays project test files, extract holiday name strings to local variables only when they are reused multiple times within the same test method (e.g., used in both assertHolidayName and assertNoHolidayName calls). When a holiday name is used only once, keep it inline rather than extracting it to a variable for the sake of consistency.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 2676
File: holidays/locale/en_US/LC_MESSAGES/TN.po:17-28
Timestamp: 2025-06-26T15:34:35.476Z
Learning: In the holidays project, .po file header metadata updates (version numbers, revision dates, translator information) are legitimate changes when part of localization work and don't require `make l10n` regeneration. The `make l10n` command is primarily for formatting fixes and missing translator comments, not for intentional metadata updates.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2881
File: tests/countries/test_french_polynesia.py:19-22
Timestamp: 2025-11-08T05:09:56.159Z
Learning: In the vacanza/holidays project's test framework (PR `#2881` onwards), the base class CommonCountryTests provides a default test_no_holidays implementation that automatically tests years=start_year - 1 for standard PUBLIC category cases. Individual country test files should only override test_no_holidays when the country supports additional non-PUBLIC categories (GOVERNMENT, WORKDAY, OPTIONAL, etc.) with different start years requiring separate validation.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2881
File: tests/countries/test_faroe_islands.py:16-16
Timestamp: 2025-11-08T05:36:32.788Z
Learning: In PR `#2881` onwards, the vacanza/holidays project moved to centralized alias testing via the `check_aliases` method in `tests/common.py`. Individual country test files no longer need to import country code aliases (e.g., FO, FRO for Faroe Islands) or define `test_country_aliases` methods. The common test framework automatically validates all aliases by dynamically importing them from the registry and calling `assertAliases`.

Learnt from: Wasif-Shahzad
Repo: vacanza/holidays PR: 2409
File: holidays/countries/qatar.py:27-46
Timestamp: 2025-04-03T16:58:27.175Z
Learning: In the holidays library, method names like `_add_holiday_2nd_tue_of_feb()` and `_add_holiday_1st_sun_of_mar()` use calendar constants internally through parent class implementations even when these constants don't appear directly in the file. Removing imports that seem unused based on a simple text search could break functionality.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is `test_no_holidays`, not more descriptive names like `test_no_holidays_before_1990`. This is a consistent naming convention across country test files like France and Germany.

Learnt from: PPsyrius
Repo: vacanza/holidays PR: 2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is `test_no_holidays`, not more descriptive names like `test_no_holidays_before_1990`. This is a consistent naming convention across country test files like France and Germany.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 2631
File: tests/countries/test_sint_maarten.py:62-0
Timestamp: 2025-06-14T21:12:07.224Z
Learning: KJhellico prefers to focus on completing and reviewing the main holiday implementation code before doing detailed reviews of the corresponding test files.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 3177
File: tests/countries/test_burkina_faso.py:191-191
Timestamp: 2026-02-19T11:05:17.984Z
Learning: In tests/countries/*/*.py (e.g., Burkina Faso) ensure that when multiple holidays share the same date, their names are listed in alphabetical order within each language, not by insertion order or cross-language matching. This language-specific sort should be enforced in test expectations and data fixtures so that English, French, etc., maintain independent alphabetical ordering for same-date holidays.

Learnt from: KJhellico
Repo: vacanza/holidays PR: 3313
File: tests/test_l10n.py:86-90
Timestamp: 2026-03-06T17:22:09.824Z
Learning: In tests within the vacanza/holidays project, continue to use unittest.TestCase as the base for test classes and prefer unittest-style assertions (e.g., self.assertFalse(), self.assertEqual()) over plain Python assert statements. Do not apply Ruff PT009 suggestions to replace unittest assertions in this project; suppress/ignore those warnings for test files. This pattern should apply to all Python test files under tests/ (e.g., tests/*.py and tests/**/*.py).

@arkid15r arkid15r added this pull request to the merge queue Mar 26, 2026
Merged via the queue into vacanza:dev with commit 0c5fc5c Mar 26, 2026
32 checks passed
arkid15r added a commit to arkid15r/python-holidays that referenced this pull request Mar 28, 2026
Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants