Repository: vacanza/holidays
Pull request #2653 (2025-06-21 14:19:12)

Update Taiwan holidays
<!--
  Thanks for contributing to holidays!
-->

## Proposed change

<!--
  Describe the big picture of your changes.
  Don't forget to link your PR to an existing issue if any.
-->

Update Taiwan holidays: add new public holidays according to 2025 regulatory changes.

## Type of change

<!--
  Type of change you want to introduce. Please, check one (1) box only!
  If your PR requires multiple boxes to be checked, most likely it needs to
  be split into multiple PRs.
-->

- [ ] New country/market holidays support (thank you!)
- [x] 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

<!--
  Put an `x` in the boxes that apply. You can change them after PR is created.
-->

- [x] I've followed the [contributing guidelines][contributing-guidelines]
- [x] I've successfully run `make check`, all checks and tests are green

<!--
  Thanks again for your contribution!
-->

[contributing-guidelines]: https://github.com/vacanza/holidays/blob/dev/CONTRIBUTING.md
[docs]: https://github.com/vacanza/holidays/tree/dev/docs/source


coderabbitai[bot]: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- This is an auto-generated comment: review in progress by coderabbit.ai -->

> [!NOTE]
> Currently processing new changes in this PR. This may take a few minutes, please wait...
> 
> <details>
> <summary>📥 Commits</summary>
> 
> Reviewing files that changed from the base of the PR and between 75bdaddf58c0f1450e245ff59fee226153deab55 and c6d05d230a0834710468818d84cadaae6cfe5543.
> 
> </details>
> 
> <details>
> <summary>📒 Files selected for processing (8)</summary>
> 
> * `holidays/countries/taiwan.py` (5 hunks)
> * `holidays/groups/chinese.py` (1 hunks)
> * `holidays/locale/en_US/LC_MESSAGES/TW.po` (3 hunks)
> * `holidays/locale/th/LC_MESSAGES/TW.po` (3 hunks)
> * `holidays/locale/zh_CN/LC_MESSAGES/TW.po` (3 hunks)
> * `holidays/locale/zh_TW/LC_MESSAGES/TW.po` (3 hunks)
> * `snapshots/countries/TW_COMMON.json` (53 hunks)
> * `tests/countries/test_taiwan.py` (13 hunks)
> 
> </details>
> 
> ```ascii
>  ___________________________________________
> < Code reviewer with an internal monologue. >
>  -------------------------------------------
>   \
>    \   (\__/)
>        (•ㅅ•)
>        / 　 づ
> ```

<!-- end of auto-generated comment: review in progress by coderabbit.ai -->
<!-- usage_tips_start -->

> [!TIP]
> <details>
> <summary>CodeRabbit can generate a title for your PR based on the changes.</summary>
> 
> Add @coderabbitai placeholder anywhere in the title of your PR and CodeRabbit will replace it with a title based on the changes in the PR. You can change the placeholder by changing the `reviews.auto_title_placeholder` setting.
> 
> </details>

<!-- usage_tips_end -->
<!-- finishing_touch_checkbox_start -->

<details open="true">
<summary>✨ Finishing Touches</summary>

- [ ] <!-- {"checkboxId": "7962f53c-55bc-4827-bfbf-6a18da830691"} --> 📝 Generate Docstrings
<details open="true">
<summary>🧪 Generate Unit Tests</summary>

- [ ] <!-- {"checkboxId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} -->   Create PR with Unit Tests
- [ ] <!-- {"checkboxId": "07f1e7d6-8a8e-4e23-9900-8731c2c87f58", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} -->   Post Copyable Unit Tests in Comment

</details>

</details>

<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->

---

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.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=vacanza/holidays&utm_content=2653):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

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)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai auto-generate unit tests` to generate unit tests for this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2653) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [2 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2653&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2653&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2653)


sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2653) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [2 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2653&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2653&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2653)


sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2653) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [2 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2653&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2653&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2653)


sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2653) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [2 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2653&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2653&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2653&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2653)



Patch:
diff --git a/holidays/countries/taiwan.py b/holidays/countries/taiwan.py
index eb71a425..bbbcc992 100644
--- a/holidays/countries/taiwan.py
+++ b/holidays/countries/taiwan.py
@@ -64,6 +64,7 @@ class Taiwan(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays
         * [Ministry of Interior Order No. 0990212117](https://web.archive.org/web/20240916004712/https://law.moj.gov.tw/LawClass/LawOldVer.aspx?pcode=D0020033&lnndate=20101102&lser=001)
         * [Ministry of Interior Order No. 1010307327 and 1030128812](https://web.archive.org/web/20240919205138/https://law.moj.gov.tw/LawClass/LawOldVer.aspx?pcode=D0020033&lnndate=20120925&lser=001)
         * [Ministry of Interior Order No. 1030182404](https://web.archive.org/web/20250227171607/https://law.moj.gov.tw/LawClass/LawAll.aspx?pcode=D0020033)
+        * [Decree No. 11400053171](https://web.archive.org/web/20250602210918/https://law.moj.gov.tw/News/newsdetail.aspx?msgid=191745)
 
     Checked With:
         * [DGPA Work Calendar (1998-2025; Chinese)](https://web.archive.org/web/20250307201828/https://www.dgpa.gov.tw/informationlist?uid=30)
@@ -123,7 +124,10 @@ class Taiwan(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays
             self._add_observed(self._next_year_new_years_day, name=name)
 
         # Chinese New Year's Eve.
-        dts_observed_forward.add(self._add_chinese_new_years_eve(tr("農曆除夕")))
+        name = tr("農曆除夕")
+        if self._year >= 2026:
+            dts_observed_forward.add(self._add_chinese_day_before_new_years_eve(name))
+        dts_observed_forward.add(self._add_chinese_new_years_eve(name))
 
         # Chinese New Year.
         name = tr("春節")
@@ -141,15 +145,30 @@ class Taiwan(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays
         # Tomb-Sweeping Day.
         dts_observed.add(self._add_qingming_festival(tr("民族掃墓節")))
 
+        if self._year >= 2026:
+            # Labor Day.
+            self._add_labor_day(tr("勞動節"))
+
         # Dragon Boat Festival.
         dts_observed.add(self._add_dragon_boat_festival(tr("端午節")))
 
         # Mid-Autumn Festival.
         dts_observed.add(self._add_mid_autumn_festival(tr("中秋節")))
 
+        if self._year >= 2025:
+            # Confucius' Birthday.
+            self._add_holiday_sep_28(tr("孔子誕辰紀念日"))
+
         # National Day.
         dts_observed.add(self._add_holiday_oct_10(tr("國慶日")))
 
+        if self._year >= 2025:
+            # Taiwan Restoration and Guningtou Victory Memorial Day.
+            self._add_holiday_oct_25(tr("臺灣光復暨金門古寧頭大捷紀念日"))
+
+            # Constitution Day.
+            self._add_holiday_dec_25(tr("行憲紀念日"))
+
         if self.observed:
             self._populate_observed(dts_observed)
             # While Chinese New Year special observances rule weren't officially decreed
@@ -184,8 +203,9 @@ class Taiwan(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays
             self._add_holiday_mar_29(tr("革命先烈紀念日"))
 
     def _populate_optional_holidays(self):
-        # Labor Day.
-        self._add_labor_day(tr("勞動節"))
+        if self._year <= 2025:
+            # Labor Day.
+            self._add_labor_day(tr("勞動節"))
 
         # Armed Forces Day.
         self._add_holiday_sep_3(tr("軍人節"))
@@ -228,17 +248,19 @@ class Taiwan(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays
             # Revolutionary Martyrs Memorial Day.
             self._add_holiday_mar_29(tr("革命先烈紀念日"))
 
-            # Confucius' Birthday.
-            self._add_holiday_sep_28(tr("孔子誕辰紀念日"))
+            if self._year <= 2024:
+                # Confucius' Birthday.
+                self._add_holiday_sep_28(tr("孔子誕辰紀念日"))
 
-            # Taiwan Retrocession Day.
-            self._add_holiday_oct_25(tr("臺灣光復節"))
+                # Taiwan Retrocession Day.
+                self._add_holiday_oct_25(tr("臺灣光復節"))
 
             # Dr. Sun Yat-sen's Birthday.
             self._add_holiday_nov_12(tr("國父誕辰紀念日"))
 
-            # Constitution Day.
-            self._add_holiday_dec_25(tr("行憲紀念日"))
+            if self._year <= 2024:
+                # Constitution Day.
+                self._add_holiday_dec_25(tr("行憲紀念日"))
 
             if self._year <= 2006:
                 # Late President Chiang Kai-shek's Birthday.
diff --git a/holidays/groups/chinese.py b/holidays/groups/chinese.py
index dd19c0e5..8b830e71 100644
--- a/holidays/groups/chinese.py
+++ b/holidays/groups/chinese.py
@@ -121,6 +121,17 @@ class ChineseCalendarHolidays(EasternCalendarHolidays):
             name, self._chinese_calendar.buddha_birthday_date(self._year)
         )
 
+    def _add_chinese_day_before_new_years_eve(self, name) -> Optional[date]:
+        """
+        Add day before Chinese New Year's Eve (second to last day of 12th lunar month).
+
+        Chinese New Year's Eve is the day before the Chinese New Year.
+        https://en.wikipedia.org/wiki/Chinese_New_Year's_Eve
+        """
+        return self._add_chinese_calendar_holiday(
+            name, self._chinese_calendar.lunar_new_year_date(self._year), days_delta=-2
+        )
+
     def _add_chinese_new_years_eve(self, name) -> Optional[date]:
         """
         Add Chinese New Year's Eve (last day of 12th lunar month).
diff --git a/holidays/locale/en_US/LC_MESSAGES/TW.po b/holidays/locale/en_US/LC_MESSAGES/TW.po
index 15bf9a07..db4bf79e 100644
--- a/holidays/locale/en_US/LC_MESSAGES/TW.po
+++ b/holidays/locale/en_US/LC_MESSAGES/TW.po
@@ -14,10 +14,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.69\n"
+"Project-Id-Version: Holidays 0.76\n"
 "POT-Creation-Date: 2023-11-24 16:16+0700\n"
-"PO-Revision-Date: 2025-03-13 11:48+0700\n"
-"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
+"PO-Revision-Date: 2025-06-21 17:08+0300\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: en_US\n"
 "MIME-Version: 1.0\n"
@@ -26,6 +26,7 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "Generated-By: Lingua 4.15.0\n"
 "X-Generator: Poedit 3.5\n"
+"X-Source-Language: zh_TW\n"
 
 #. %s (observed).
 #, c-format
@@ -68,6 +69,10 @@ msgstr "Mid-Autumn Festival"
 msgid "國慶日"
 msgstr "National Day"
 
+#. Taiwan Restoration and Guningtou Victory Memorial Day.
+msgid "臺灣光復暨金門古寧頭大捷紀念日"
+msgstr "Taiwan Restoration and Guningtou Victory Memorial Day"
+
 #. Date format (see strftime() Format Codes).
 msgid "%Y-%m-%d"
 msgstr "%m/%d/%Y"
diff --git a/holidays/locale/th/LC_MESSAGES/TW.po b/holidays/locale/th/LC_MESSAGES/TW.po
index 2364aacd..73c7c34b 100644
--- a/holidays/locale/th/LC_MESSAGES/TW.po
+++ b/holidays/locale/th/LC_MESSAGES/TW.po
@@ -14,10 +14,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.69\n"
+"Project-Id-Version: Holidays 0.76\n"
 "POT-Creation-Date: 2023-11-24 16:16+0700\n"
-"PO-Revision-Date: 2025-03-13 11:49+0700\n"
-"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
+"PO-Revision-Date: 2025-06-21 17:09+0300\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: th\n"
 "MIME-Version: 1.0\n"
@@ -26,6 +26,7 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "Generated-By: Lingua 4.15.0\n"
 "X-Generator: Poedit 3.5\n"
+"X-Source-Language: zh_TW\n"
 
 #. %s (observed).
 #, c-format
@@ -68,6 +69,10 @@ msgstr "วันไหว้พระจันทร์"
 msgid "國慶日"
 msgstr "วันชาติสาธารณรัฐจีน(ไต้หวัน)"
 
+#. Taiwan Restoration and Guningtou Victory Memorial Day.
+msgid "臺灣光復暨金門古寧頭大捷紀念日"
+msgstr "วันรำลึกการทวงคืนไต้หวันและชัยชนะยุทธการกู่หนิงโถว"
+
 #. Date format (see strftime() Format Codes).
 msgid "%Y-%m-%d"
 msgstr "%d/%m/%Y"
diff --git a/holidays/locale/zh_CN/LC_MESSAGES/TW.po b/holidays/locale/zh_CN/LC_MESSAGES/TW.po
index e7666989..ac1ddd8b 100644
--- a/holidays/locale/zh_CN/LC_MESSAGES/TW.po
+++ b/holidays/locale/zh_CN/LC_MESSAGES/TW.po
@@ -14,10 +14,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.69\n"
+"Project-Id-Version: Holidays 0.76\n"
 "POT-Creation-Date: 2023-11-24 16:16+0700\n"
-"PO-Revision-Date: 2025-03-13 11:49+0700\n"
-"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
+"PO-Revision-Date: 2025-06-21 17:09+0300\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
@@ -26,6 +26,7 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "Generated-By: Lingua 4.15.0\n"
 "X-Generator: Poedit 3.5\n"
+"X-Source-Language: zh_TW\n"
 
 #. %s (observed).
 #, c-format
@@ -68,6 +69,10 @@ msgstr "中秋节"
 msgid "國慶日"
 msgstr "国庆日"
 
+#. Taiwan Restoration and Guningtou Victory Memorial Day.
+msgid "臺灣光復暨金門古寧頭大捷紀念日"
+msgstr "臺灣光復節"
+
 #. Date format (see strftime() Format Codes).
 msgid "%Y-%m-%d"
 msgstr "%Y-%m-%d"
diff --git a/holidays/locale/zh_TW/LC_MESSAGES/TW.po b/holidays/locale/zh_TW/LC_MESSAGES/TW.po
index 872b584b..07c9900f 100644
--- a/holidays/locale/zh_TW/LC_MESSAGES/TW.po
+++ b/holidays/locale/zh_TW/LC_MESSAGES/TW.po
@@ -14,10 +14,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.69\n"
+"Project-Id-Version: Holidays 0.76\n"
 "POT-Creation-Date: 2023-11-24 16:16+0700\n"
-"PO-Revision-Date: 2025-03-13 11:49+0700\n"
-"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
+"PO-Revision-Date: 2025-06-21 17:08+0300\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: zh_TW\n"
 "MIME-Version: 1.0\n"
@@ -26,6 +26,7 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "Generated-By: Lingua 4.15.0\n"
 "X-Generator: Poedit 3.5\n"
+"X-Source-Language: zh_TW\n"
 
 #. %s (observed).
 #, c-format
@@ -68,6 +69,10 @@ msgstr ""
 msgid "國慶日"
 msgstr ""
 
+#. Taiwan Restoration and Guningtou Victory Memorial Day.
+msgid "臺灣光復暨金門古寧頭大捷紀念日"
+msgstr ""
+
 #. Date format (see strftime() Format Codes).
 msgid "%Y-%m-%d"
 msgstr ""
diff --git a/snapshots/countries/TW_COMMON.json b/snapshots/countries/TW_COMMON.json
index 7864be1b..c397bc83 100644
--- a/snapshots/countries/TW_COMMON.json
+++ b/snapshots/countries/TW_COMMON.json
@@ -739,14 +739,16 @@
     "2025-10-06": "Mid-Autumn Festival",
     "2025-10-10": "National Day",
     "2025-10-24": "Taiwan United Nations Day",
-    "2025-10-25": "Taiwan Retrocession Day",
+    "2025-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2025-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2025-12-25": "Constitution Day",
     "2026-01-01": "Founding Day of the Republic of China",
+    "2026-02-15": "Chinese New Year's Eve",
     "2026-02-16": "Chinese New Year's Eve",
     "2026-02-17": "Chinese New Year; Taoism Day",
     "2026-02-18": "Chinese New Year",
     "2026-02-19": "Chinese New Year",
+    "2026-02-20": "Chinese New Year's Eve (observed)",
     "2026-02-27": "Peace Memorial Day (observed)",
     "2026-02-28": "Peace Memorial Day",
     "2026-03-08": "Women's Day",
@@ -767,10 +769,11 @@
     "2026-10-09": "National Day (observed)",
     "2026-10-10": "National Day",
     "2026-10-24": "Taiwan United Nations Day",
-    "2026-10-25": "Taiwan Retrocession Day",
+    "2026-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2026-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2026-12-25": "Constitution Day",
     "2027-01-01": "Founding Day of the Republic of China",
+    "2027-02-04": "Chinese New Year's Eve",
     "2027-02-05": "Chinese New Year's Eve",
     "2027-02-06": "Chinese New Year; Taoism Day",
     "2027-02-07": "Chinese New Year",
@@ -796,11 +799,12 @@
     "2027-10-10": "National Day",
     "2027-10-11": "National Day (observed)",
     "2027-10-24": "Taiwan United Nations Day",
-    "2027-10-25": "Taiwan Retrocession Day",
+    "2027-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2027-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2027-12-25": "Constitution Day",
     "2027-12-31": "Founding Day of the Republic of China (observed)",
     "2028-01-01": "Founding Day of the Republic of China",
+    "2028-01-24": "Chinese New Year's Eve",
     "2028-01-25": "Chinese New Year's Eve",
     "2028-01-26": "Chinese New Year; Taoism Day",
     "2028-01-27": "Chinese New Year",
@@ -822,14 +826,16 @@
     "2028-10-03": "Mid-Autumn Festival",
     "2028-10-10": "National Day",
     "2028-10-24": "Taiwan United Nations Day",
-    "2028-10-25": "Taiwan Retrocession Day",
+    "2028-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2028-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2028-12-25": "Constitution Day",
     "2029-01-01": "Founding Day of the Republic of China",
+    "2029-02-11": "Chinese New Year's Eve",
     "2029-02-12": "Chinese New Year's Eve",
     "2029-02-13": "Chinese New Year; Taoism Day",
     "2029-02-14": "Chinese New Year",
     "2029-02-15": "Chinese New Year",
+    "2029-02-16": "Chinese New Year's Eve (observed)",
     "2029-02-28": "Peace Memorial Day",
     "2029-03-08": "Women's Day",
     "2029-03-12": "Arbor Day; Dr. Sun Yat-sen's Memorial Day",
@@ -848,10 +854,11 @@
     "2029-09-28": "Confucius' Birthday; Teacher's Day",
     "2029-10-10": "National Day",
     "2029-10-24": "Taiwan United Nations Day",
-    "2029-10-25": "Taiwan Retrocession Day",
+    "2029-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2029-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2029-12-25": "Constitution Day",
     "2030-01-01": "Founding Day of the Republic of China",
+    "2030-02-01": "Chinese New Year's Eve",
     "2030-02-02": "Chinese New Year's Eve",
     "2030-02-03": "Chinese New Year; Taoism Day",
     "2030-02-04": "Chinese New Year",
@@ -874,10 +881,11 @@
     "2030-09-28": "Confucius' Birthday; Teacher's Day",
     "2030-10-10": "National Day",
     "2030-10-24": "Taiwan United Nations Day",
-    "2030-10-25": "Taiwan Retrocession Day",
+    "2030-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2030-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2030-12-25": "Constitution Day",
     "2031-01-01": "Founding Day of the Republic of China",
+    "2031-01-21": "Chinese New Year's Eve",
     "2031-01-22": "Chinese New Year's Eve",
     "2031-01-23": "Chinese New Year; Taoism Day",
     "2031-01-24": "Chinese New Year",
@@ -900,10 +908,11 @@
     "2031-10-01": "Mid-Autumn Festival",
     "2031-10-10": "National Day",
     "2031-10-24": "Taiwan United Nations Day",
-    "2031-10-25": "Taiwan Retrocession Day",
+    "2031-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2031-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2031-12-25": "Constitution Day",
     "2032-01-01": "Founding Day of the Republic of China",
+    "2032-02-09": "Chinese New Year's Eve",
     "2032-02-10": "Chinese New Year's Eve",
     "2032-02-11": "Chinese New Year; Taoism Day",
     "2032-02-12": "Chinese New Year",
@@ -929,16 +938,18 @@
     "2032-10-10": "National Day",
     "2032-10-11": "National Day (observed)",
     "2032-10-24": "Taiwan United Nations Day",
-    "2032-10-25": "Taiwan Retrocession Day",
+    "2032-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2032-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2032-12-25": "Constitution Day",
     "2032-12-31": "Founding Day of the Republic of China (observed)",
     "2033-01-01": "Founding Day of the Republic of China",
+    "2033-01-29": "Chinese New Year's Eve",
     "2033-01-30": "Chinese New Year's Eve",
     "2033-01-31": "Chinese New Year; Taoism Day",
     "2033-02-01": "Chinese New Year",
     "2033-02-02": "Chinese New Year",
     "2033-02-03": "Chinese New Year's Eve (observed)",
+    "2033-02-04": "Chinese New Year's Eve (observed)",
     "2033-02-28": "Peace Memorial Day",
     "2033-03-08": "Women's Day",
     "2033-03-12": "Arbor Day; Dr. Sun Yat-sen's Memorial Day",
@@ -955,11 +966,12 @@
     "2033-09-28": "Confucius' Birthday; Teacher's Day",
     "2033-10-10": "National Day",
     "2033-10-24": "Taiwan United Nations Day",
-    "2033-10-25": "Taiwan Retrocession Day",
+    "2033-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2033-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2033-12-25": "Constitution Day",
     "2034-01-01": "Founding Day of the Republic of China",
     "2034-01-02": "Founding Day of the Republic of China (observed)",
+    "2034-02-17": "Chinese New Year's Eve",
     "2034-02-18": "Chinese New Year's Eve",
     "2034-02-19": "Chinese New Year; Taoism Day",
     "2034-02-20": "Chinese New Year",
@@ -982,10 +994,11 @@
     "2034-09-28": "Confucius' Birthday; Teacher's Day",
     "2034-10-10": "National Day",
     "2034-10-24": "Taiwan United Nations Day",
-    "2034-10-25": "Taiwan Retrocession Day",
+    "2034-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2034-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2034-12-25": "Constitution Day",
     "2035-01-01": "Founding Day of the Republic of China",
+    "2035-02-06": "Chinese New Year's Eve",
     "2035-02-07": "Chinese New Year's Eve",
     "2035-02-08": "Chinese New Year; Taoism Day",
     "2035-02-09": "Chinese New Year",
@@ -1009,15 +1022,17 @@
     "2035-09-28": "Confucius' Birthday; Teacher's Day",
     "2035-10-10": "National Day",
     "2035-10-24": "Taiwan United Nations Day",
-    "2035-10-25": "Taiwan Retrocession Day",
+    "2035-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2035-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2035-12-25": "Constitution Day",
     "2036-01-01": "Founding Day of the Republic of China",
+    "2036-01-26": "Chinese New Year's Eve",
     "2036-01-27": "Chinese New Year's Eve",
     "2036-01-28": "Chinese New Year; Taoism Day",
     "2036-01-29": "Chinese New Year",
     "2036-01-30": "Chinese New Year",
     "2036-01-31": "Chinese New Year's Eve (observed)",
+    "2036-02-01": "Chinese New Year's Eve (observed)",
     "2036-02-28": "Peace Memorial Day",
     "2036-03-08": "Women's Day",
     "2036-03-12": "Arbor Day; Dr. Sun Yat-sen's Memorial Day",
@@ -1035,10 +1050,11 @@
     "2036-10-04": "Mid-Autumn Festival",
     "2036-10-10": "National Day",
     "2036-10-24": "Taiwan United Nations Day",
-    "2036-10-25": "Taiwan Retrocession Day",
+    "2036-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2036-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2036-12-25": "Constitution Day",
     "2037-01-01": "Founding Day of the Republic of China",
+    "2037-02-13": "Chinese New Year's Eve",
     "2037-02-14": "Chinese New Year's Eve",
     "2037-02-15": "Chinese New Year; Taoism Day",
     "2037-02-16": "Chinese New Year",
@@ -1064,10 +1080,11 @@
     "2037-10-09": "National Day (observed)",
     "2037-10-10": "National Day",
     "2037-10-24": "Taiwan United Nations Day",
-    "2037-10-25": "Taiwan Retrocession Day",
+    "2037-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2037-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2037-12-25": "Constitution Day",
     "2038-01-01": "Founding Day of the Republic of China",
+    "2038-02-02": "Chinese New Year's Eve",
     "2038-02-03": "Chinese New Year's Eve",
     "2038-02-04": "Chinese New Year; Taoism Day",
     "2038-02-05": "Chinese New Year",
@@ -1092,16 +1109,18 @@
     "2038-10-10": "National Day",
     "2038-10-11": "National Day (observed)",
     "2038-10-24": "Taiwan United Nations Day",
-    "2038-10-25": "Taiwan Retrocession Day",
+    "2038-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2038-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2038-12-25": "Constitution Day",
     "2038-12-31": "Founding Day of the Republic of China (observed)",
     "2039-01-01": "Founding Day of the Republic of China",
+    "2039-01-22": "Chinese New Year's Eve",
     "2039-01-23": "Chinese New Year's Eve",
     "2039-01-24": "Chinese New Year; Taoism Day",
     "2039-01-25": "Chinese New Year",
     "2039-01-26": "Chinese New Year",
     "2039-01-27": "Chinese New Year's Eve (observed)",
+    "2039-01-28": "Chinese New Year's Eve (observed)",
     "2039-02-28": "Peace Memorial Day",
     "2039-03-08": "Women's Day",
     "2039-03-12": "Arbor Day; Dr. Sun Yat-sen's Memorial Day",
@@ -1119,11 +1138,12 @@
     "2039-10-03": "Mid-Autumn Festival (observed)",
     "2039-10-10": "National Day",
     "2039-10-24": "Taiwan United Nations Day",
-    "2039-10-25": "Taiwan Retrocession Day",
+    "2039-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2039-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2039-12-25": "Constitution Day",
     "2040-01-01": "Founding Day of the Republic of China",
     "2040-01-02": "Founding Day of the Republic of China (observed)",
+    "2040-02-10": "Chinese New Year's Eve",
     "2040-02-11": "Chinese New Year's Eve",
     "2040-02-12": "Chinese New Year; Taoism Day",
     "2040-02-13": "Chinese New Year",
@@ -1146,10 +1166,11 @@
     "2040-09-28": "Confucius' Birthday; Teacher's Day",
     "2040-10-10": "National Day",
     "2040-10-24": "Taiwan United Nations Day",
-    "2040-10-25": "Taiwan Retrocession Day",
+    "2040-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2040-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2040-12-25": "Constitution Day",
     "2041-01-01": "Founding Day of the Republic of China",
+    "2041-01-30": "Chinese New Year's Eve",
     "2041-01-31": "Chinese New Year's Eve",
     "2041-02-01": "Chinese New Year; Taoism Day",
     "2041-02-02": "Chinese New Year",
@@ -1172,10 +1193,11 @@
     "2041-09-28": "Confucius' Birthday; Teacher's Day",
     "2041-10-10": "National Day",
     "2041-10-24": "Taiwan United Nations Day",
-    "2041-10-25": "Taiwan Retrocession Day",
+    "2041-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2041-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2041-12-25": "Constitution Day",
     "2042-01-01": "Founding Day of the Republic of China",
+    "2042-01-20": "Chinese New Year's Eve",
     "2042-01-21": "Chinese New Year's Eve",
     "2042-01-22": "Chinese New Year; Taoism Day",
     "2042-01-23": "Chinese New Year",
@@ -1195,17 +1217,20 @@
     "2042-07-15": "Commemoration Day of the Lifting of Martial Law",
     "2042-09-03": "Armed Forces Day",
     "2042-09-28": "Confucius' Birthday; Mid-Autumn Festival; Teacher's Day",
-    "2042-09-29": "Mid-Autumn Festival (observed)",
+    "2042-09-29": "Confucius' Birthday (observed)",
+    "2042-09-30": "Mid-Autumn Festival (observed)",
     "2042-10-10": "National Day",
     "2042-10-24": "Taiwan United Nations Day",
-    "2042-10-25": "Taiwan Retrocession Day",
+    "2042-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2042-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2042-12-25": "Constitution Day",
     "2043-01-01": "Founding Day of the Republic of China",
+    "2043-02-08": "Chinese New Year's Eve",
     "2043-02-09": "Chinese New Year's Eve",
     "2043-02-10": "Chinese New Year; Taoism Day",
     "2043-02-11": "Chinese New Year",
     "2043-02-12": "Chinese New Year",
+    "2043-02-13": "Chinese New Year's Eve (observed)",
     "2043-02-27": "Peace Memorial Day (observed)",
     "2043-02-28": "Peace Memorial Day",
     "2043-03-08": "Women's Day",
@@ -1226,10 +1251,11 @@
     "2043-10-09": "National Day (observed)",
     "2043-10-10": "National Day",
     "2043-10-24": "Taiwan United Nations Day",
-    "2043-10-25": "Taiwan Retrocession Day",
+    "2043-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2043-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2043-12-25": "Constitution Day",
     "2044-01-01": "Founding Day of the Republic of China",
+    "2044-01-28": "Chinese New Year's Eve",
     "2044-01-29": "Chinese New Year's Eve",
     "2044-01-30": "Chinese New Year; Taoism Day",
     "2044-01-31": "Chinese New Year",
@@ -1253,11 +1279,12 @@
     "2044-10-05": "Mid-Autumn Festival",
     "2044-10-10": "National Day",
     "2044-10-24": "Taiwan United Nations Day",
-    "2044-10-25": "Taiwan Retrocession Day",
+    "2044-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2044-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2044-12-25": "Constitution Day",
     "2045-01-01": "Founding Day of the Republic of China",
     "2045-01-02": "Founding Day of the Republic of China (observed)",
+    "2045-02-15": "Chinese New Year's Eve",
     "2045-02-16": "Chinese New Year's Eve",
     "2045-02-17": "Chinese New Year; Taoism Day",
     "2045-02-18": "Chinese New Year",
@@ -1280,14 +1307,16 @@
     "2045-09-28": "Confucius' Birthday; Teacher's Day",
     "2045-10-10": "National Day",
     "2045-10-24": "Taiwan United Nations Day",
-    "2045-10-25": "Taiwan Retrocession Day",
+    "2045-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2045-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2045-12-25": "Constitution Day",
     "2046-01-01": "Founding Day of the Republic of China",
+    "2046-02-04": "Chinese New Year's Eve",
     "2046-02-05": "Chinese New Year's Eve",
     "2046-02-06": "Chinese New Year; Taoism Day",
     "2046-02-07": "Chinese New Year",
     "2046-02-08": "Chinese New Year",
+    "2046-02-09": "Chinese New Year's Eve (observed)",
     "2046-02-28": "Peace Memorial Day",
     "2046-03-08": "Women's Day",
     "2046-03-12": "Arbor Day; Dr. Sun Yat-sen's Memorial Day",
@@ -1305,10 +1334,11 @@
     "2046-09-28": "Confucius' Birthday; Teacher's Day",
     "2046-10-10": "National Day",
     "2046-10-24": "Taiwan United Nations Day",
-    "2046-10-25": "Taiwan Retrocession Day",
+    "2046-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2046-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2046-12-25": "Constitution Day",
     "2047-01-01": "Founding Day of the Republic of China",
+    "2047-01-24": "Chinese New Year's Eve",
     "2047-01-25": "Chinese New Year's Eve",
     "2047-01-26": "Chinese New Year; Taoism Day",
     "2047-01-27": "Chinese New Year",
@@ -1331,10 +1361,11 @@
     "2047-10-04": "Mid-Autumn Festival",
     "2047-10-10": "National Day",
     "2047-10-24": "Taiwan United Nations Day",
-    "2047-10-25": "Taiwan Retrocession Day",
+    "2047-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2047-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2047-12-25": "Constitution Day",
     "2048-01-01": "Founding Day of the Republic of China",
+    "2048-02-12": "Chinese New Year's Eve",
     "2048-02-13": "Chinese New Year's Eve",
     "2048-02-14": "Chinese New Year; Taoism Day",
     "2048-02-15": "Chinese New Year",
@@ -1359,14 +1390,16 @@
     "2048-10-09": "National Day (observed)",
     "2048-10-10": "National Day",
     "2048-10-24": "Taiwan United Nations Day",
-    "2048-10-25": "Taiwan Retrocession Day",
+    "2048-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2048-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2048-12-25": "Constitution Day",
     "2049-01-01": "Founding Day of the Republic of China",
+    "2049-01-31": "Chinese New Year's Eve",
     "2049-02-01": "Chinese New Year's Eve",
     "2049-02-02": "Chinese New Year; Taoism Day",
     "2049-02-03": "Chinese New Year",
     "2049-02-04": "Chinese New Year",
+    "2049-02-05": "Chinese New Year's Eve (observed)",
     "2049-02-28": "Peace Memorial Day",
     "2049-03-01": "Peace Memorial Day (observed)",
     "2049-03-08": "Women's Day",
@@ -1387,11 +1420,12 @@
     "2049-10-10": "National Day",
     "2049-10-11": "National Day (observed)",
     "2049-10-24": "Taiwan United Nations Day",
-    "2049-10-25": "Taiwan Retrocession Day",
+    "2049-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2049-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2049-12-25": "Constitution Day",
     "2049-12-31": "Founding Day of the Republic of China (observed)",
     "2050-01-01": "Founding Day of the Republic of China",
+    "2050-01-21": "Chinese New Year's Eve",
     "2050-01-22": "Chinese New Year's Eve",
     "2050-01-23": "Chinese New Year; Taoism Day",
     "2050-01-24": "Chinese New Year",
@@ -1414,7 +1448,7 @@
     "2050-09-30": "Mid-Autumn Festival",
     "2050-10-10": "National Day",
     "2050-10-24": "Taiwan United Nations Day",
-    "2050-10-25": "Taiwan Retrocession Day",
+    "2050-10-25": "Taiwan Restoration and Guningtou Victory Memorial Day",
     "2050-11-12": "Chinese Cultural Renaissance Day; Dr. Sun Yat-sen's Birthday",
     "2050-12-25": "Constitution Day"
 }


Test patch:
diff --git a/tests/countries/test_taiwan.py b/tests/countries/test_taiwan.py
index f26bf2d9..606f8e2d 100644
--- a/tests/countries/test_taiwan.py
+++ b/tests/countries/test_taiwan.py
@@ -183,6 +183,9 @@ class TestTaiwan(CommonCountryTests, WorkingDayTests, TestCase):
             "2022-01-31",
             "2023-01-21",
             "2024-02-09",
+            "2025-01-28",
+            "2026-02-15",
+            "2026-02-16",
         )
         self.assertHolidayName(name_eve, range(1998, 2050))
         # CNY itself.
@@ -237,6 +240,7 @@ class TestTaiwan(CommonCountryTests, WorkingDayTests, TestCase):
             "2013-02-13",
             "2016-02-11",
             "2023-01-25",
+            "2026-02-20",
         )
         obs_dt = (
             "1998-01-31",
@@ -460,11 +464,15 @@ class TestTaiwan(CommonCountryTests, WorkingDayTests, TestCase):
     def test_labor_day(self):
         name = "勞動節"
 
+        # Public Holidays.
+        self.assertHolidayName(name, (f"{year}-05-01" for year in range(2026, 2050)))
+        self.assertNoHolidayName(name, range(1998, 2026))
+
         # Optional Holidays.
         self.assertHolidayName(
-            name, self.optional_holidays, (f"{year}-05-01" for year in range(1998, 2050))
+            name, self.optional_holidays, (f"{year}-05-01" for year in range(1998, 2026))
         )
-        self.assertNoHolidayName(name)
+        self.assertNoHolidayName(name, self.optional_holidays, range(2026, 2050))
 
     def test_the_buddhas_birthday(self):
         name = "佛陀誕辰紀念日"
@@ -589,6 +597,10 @@ class TestTaiwan(CommonCountryTests, WorkingDayTests, TestCase):
     def test_confucius_birthday(self):
         name = "孔子誕辰紀念日"
 
+        # Public Holidays.
+        self.assertHolidayName(name, (f"{year}-09-28" for year in range(2025, 2050)))
+        self.assertNoHolidayName(name, range(1998, 2025))
+
         # Government Holidays.
         self.assertHolidayName(
             name, self.government_holidays, (f"{year}-09-28" for year in range(1998, 2001))
@@ -603,10 +615,9 @@ class TestTaiwan(CommonCountryTests, WorkingDayTests, TestCase):
 
         # Workdays.
         self.assertHolidayName(
-            name, self.workday_holidays, (f"{year}-09-28" for year in range(2001, 2050))
+            name, self.workday_holidays, (f"{year}-09-28" for year in range(2001, 2025))
         )
-        self.assertNoHolidayName(name, self.workday_holidays, range(1998, 2000))
-        self.assertNoHolidayName(name)
+        self.assertNoHolidayName(name, self.workday_holidays, range(1998, 2000), range(2025, 2050))
 
     def test_teachers_day(self):
         name = "教師節"
@@ -628,26 +639,33 @@ class TestTaiwan(CommonCountryTests, WorkingDayTests, TestCase):
         self.assertNoHolidayName(name)
 
     def test_taiwan_retrocession_day(self):
-        name = "臺灣光復節"
+        name_old = "臺灣光復節"
+        name_new = "臺灣光復暨金門古寧頭大捷紀念日"
+
+        # Public Holidays.
+        self.assertHolidayName(name_new, (f"{year}-10-25" for year in range(2025, 2050)))
+        self.assertNoHolidayName(name_new, range(1998, 2025))
+        self.assertNoHolidayName(name_old)
 
         # Government Holidays.
         self.assertHolidayName(
-            name, self.government_holidays, (f"{year}-10-25" for year in range(1998, 2001))
+            name_old, self.government_holidays, (f"{year}-10-25" for year in range(1998, 2001))
         )
-        self.assertNoHolidayName(name, self.government_holidays, range(2001, 2050))
+        self.assertNoHolidayName(name_old, self.government_holidays, range(2001, 2050))
 
         # School Holidays.
         self.assertHolidayName(
-            name, self.school_holidays, (f"{year}-10-25" for year in range(1998, 2001))
+            name_old, self.school_holidays, (f"{year}-10-25" for year in range(1998, 2001))
         )
-        self.assertNoHolidayName(name, self.school_holidays, range(2001, 2050))
+        self.assertNoHolidayName(name_old, self.school_holidays, range(2001, 2050))
 
         # Workdays.
         self.assertHolidayName(
-            name, self.workday_holidays, (f"{year}-10-25" for year in range(2001, 2050))
+            name_old, self.workday_holidays, (f"{year}-10-25" for year in range(2001, 2025))
+        )
+        self.assertNoHolidayName(
+            name_old, self.workday_holidays, range(1998, 2000), range(2025, 2050)
         )
-        self.assertNoHolidayName(name, self.workday_holidays, range(1998, 2000))
-        self.assertNoHolidayName(name)
 
     def test_late_president_chiang_kai_sheks_birthday(self):
         name = "先總統　蔣公誕辰紀念日"
@@ -705,6 +723,10 @@ class TestTaiwan(CommonCountryTests, WorkingDayTests, TestCase):
     def test_constitution_day(self):
         name = "行憲紀念日"
 
+        # Public Holidays.
+        self.assertHolidayName(name, (f"{year}-12-25" for year in range(2025, 2050)))
+        self.assertNoHolidayName(name, range(1998, 2025))
+
         # Government Holidays.
         self.assertHolidayName(
             name, self.government_holidays, (f"{year}-12-25" for year in range(1998, 2001))
@@ -719,10 +741,9 @@ class TestTaiwan(CommonCountryTests, WorkingDayTests, TestCase):
 
         # Workdays.
         self.assertHolidayName(
-            name, self.workday_holidays, (f"{year}-12-25" for year in range(2001, 2050))
+            name, self.workday_holidays, (f"{year}-12-25" for year in range(2001, 2025))
         )
-        self.assertNoHolidayName(name, self.workday_holidays, range(1998, 2000))
-        self.assertNoHolidayName(name)
+        self.assertNoHolidayName(name, self.workday_holidays, range(1998, 2000), range(2025, 2050))
 
     def test_1998(self):
         self.assertHolidays(
@@ -1250,8 +1271,11 @@ class TestTaiwan(CommonCountryTests, WorkingDayTests, TestCase):
             ("2025-04-04", "兒童節; 民族掃墓節"),
             ("2025-05-30", "端午節（慶祝）"),
             ("2025-05-31", "端午節"),
+            ("2025-09-28", "孔子誕辰紀念日"),
             ("2025-10-06", "中秋節"),
             ("2025-10-10", "國慶日"),
+            ("2025-10-25", "臺灣光復暨金門古寧頭大捷紀念日"),
+            ("2025-12-25", "行憲紀念日"),
         )
 
     def test_l10n_default(self):