-
Notifications
You must be signed in to change notification settings - Fork 473
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
Add Thailand holidays localization: en_US, th #946
Conversation
Try to run |
Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>
I don't think that command worked for me, sadly @KJhellico D:\[redacted]\python-holidays>make l10n
scripts/l10n/generate_po_files.py
Traceback (most recent call last):
File "D:\[redacted]\python-holidays\scripts\l10n\generate_po_files.py", line 90, in <module>
pot_generator.run()
File "D:\[redacted]\python-holidays\scripts\l10n\generate_po_files.py", line 85, in run
self.process_countries()
File "D:\[redacted]\python-holidays\scripts\l10n\generate_po_files.py", line 43, in process_countries
importlib.import_module(module), inspect.isclass
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.752.0_x64__qbz5n2kfra8p0\Lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'holidays.countries.holidays\\countries\\albania'
make: *** [Makefile:28: l10n] Error 1 |
On Windows I could't do it too, so I did it on Linux :) |
I don't think I have much luck with ppsyrius@[redacted]:/mnt/d/[redacted]/python-holidays$ make l10n
scripts/l10n/generate_po_files.py
Traceback (most recent call last):
File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 90, in <module>
pot_generator.run()
File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 85, in run
self.process_countries()
File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 55, in process_countries
subprocess.run(
File "/usr/lib/python3.10/subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.10/subprocess.py", line 969, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'pot-create'
make: *** [Makefile:28: l10n] Error 1 The ppsyrius@[redacted]:/mnt/d/[redacted]/python-holidays$ echo $PYTHONPATH
/mnt/d/[redacted]/python-holidays |
|
@PPsyrius |
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.
Thanks for your efforts to localize Thailand holidays.
It seems that your approach is a bit different from what we already have for other countries.
In general in a localized version I'd expect thailand.py
to have holiday names in Thai (not English) language. Then .pot file is generated (make l10n
) and added for each of languages you want to translate into. After the .po files are added and translated we can use .mo files (will done automatically).
The l10n support has just been added so there may be changes in the translation related code/processes.
On the reason why I stick with
Despite all the stated reasoning above, I don't mind switching the default ones to Thai as that would indeed help with standardization for the library as a whole. |
Yes, although I did have this warning for WSL Defaulting to user installation because normal site-packages is not writeable Edit: After reinstalling and using (.venv) ppsyrius@[redacted]:/mnt/d/[redacted]/python-holidays$ make l10n
scripts/l10n/generate_po_files.py
Traceback (most recent call last):
File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 90, in <module>
pot_generator.run()
File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 85, in run
self.process_countries()
File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 71, in process_countries
subprocess.run(
File "/usr/lib/python3.10/subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.10/subprocess.py", line 969, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'msgmerge' |
On Linux (Debian, Ubuntu) |
This and manually creating additional So to recap for Windows users (could be useful for others)
|
@arkid15r @KJhellico There seems to be some problems for non-ASCII holidays/locale/pot/TH.pot:56: warning: The following msgid contains non-ASCII characters.
This will cause problems to translators who use a character encoding
different from yours. Consider using a pure ASCII msgid instead.
Emergency Lockdown (Thai Military Coup d'état) Same goes for using the Thai language as the default loc: holidays/locale/pot/TH.pot:92: invalid multibyte sequence
holidays/locale/pot/TH.pot:92: invalid multibyte sequence |
Hi @arkid15r, I am thinking of contributing Italian names for Italian holidays and am following this thread closely. I too am on Windows but don't know the technology/library used here, and am a bit worried as I don't really want to install WSL2. Also worrisome is the lack of support for UTF-8 (based on the error reported above) as it's required for Italian. As the author of #827 and the |
Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Well, that's how l10n works. We have it working/tested for
There is a way to split long Python strings using "()". You can also suppress warnings on a per-file basis.
👍 |
It looks like a warning that can be ignored.
This one might be more serious but still can be fixable. The gettext l10n mechanism is widely used and tested. |
Hi @mborsetti, I've moved this to a separate issue |
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.
This l10n PR looks good!
Just a couple of minot suggestions:
Co-authored-by: Arkadii Yakovets <ark@cho.red>
Co-authored-by: Arkadii Yakovets <ark@cho.red>
Co-authored-by: Arkadii Yakovets <ark@cho.red>
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.
🇹🇭 LGTM
Great l10n work! Additionally, thank you for the Windows environment setup instructions! |
* TH: modify Thailand code to support i18n * TH: applying `KJhellico`'s suggestion, more accurate titles Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: non-ASCII `msgid` fixed * TH: Thai translation localisations * TH: fixed mismatch file title Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: `set_locale` -> `set_language` * TH: switch default loc to `th` * TH: split string Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description (2) Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: avoid explicit `# noqa: E501` usage * TH: improved national day trigger * TH: avoid explicit `# noqa: E501` for testcases --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <ark@cho.red>
* TH: modify Thailand code to support i18n * TH: applying `KJhellico`'s suggestion, more accurate titles Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: non-ASCII `msgid` fixed * TH: Thai translation localisations * TH: fixed mismatch file title Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: `set_locale` -> `set_language` * TH: switch default loc to `th` * TH: split string Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description (2) Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: avoid explicit `# noqa: E501` usage * TH: improved national day trigger * TH: avoid explicit `# noqa: E501` for testcases --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <ark@cho.red>
* TH: modify Thailand code to support i18n * TH: applying `KJhellico`'s suggestion, more accurate titles Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: non-ASCII `msgid` fixed * TH: Thai translation localisations * TH: fixed mismatch file title Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: `set_locale` -> `set_language` * TH: switch default loc to `th` * TH: split string Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description (2) Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: avoid explicit `# noqa: E501` usage * TH: improved national day trigger * TH: avoid explicit `# noqa: E501` for testcases --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <ark@cho.red>
* TH: modify Thailand code to support i18n * TH: applying `KJhellico`'s suggestion, more accurate titles Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: non-ASCII `msgid` fixed * TH: Thai translation localisations * TH: fixed mismatch file title Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: `set_locale` -> `set_language` * TH: switch default loc to `th` * TH: split string Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description (2) Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: avoid explicit `# noqa: E501` usage * TH: improved national day trigger * TH: avoid explicit `# noqa: E501` for testcases --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <ark@cho.red>
* update spain.py with changes for year 2023 * update spain.py with changes for year 2023 * update spain.py with changes for year 2023 * Update holidays/countries/spain.py Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * Montenegro optimization * Add initial PR template. * Update template. * Update template. * Change the template. * add docstring with reference to Spain * update Spain tests * remove unused constants * Add commnent with reference to Spain * fix Co-authored-by: Arkadii Yakovets <ark@cho.red> * Init v.0.20 beta. * Upgrade dependency: change black version from 22.12.0 to 23.1.0. * Change holiday name separator from ", " to "; ". * Update Australia holidays: fix 2020 QLD holidays. * Jamaica holidays update * Bosnia and Herzegovina holidays update * Simplify if/else statement. * fix Co-authored-by: Arkadii Yakovets <ark@cho.red> * Bolivia holidays update and refactoring * Panama holidays added * Refactor days offset calculation for recently added countries * Change some of common.TestCase methods behavior: - `TestCase::assertHolidayName - `TestCase::assertHolidaysName` - `TestCase::assertNoHolidayName` * Cuba holidays refactoring * Hong Kong fix * Thai Lunar Calendar added, exact start of holidays for historic use, refs, etc. * In-code comment improvements for readability * Add contact info in case future changes are needed * Fixed syntax error * TH Special Holidays code improvements Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH in lieu holiday trigger refactor Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: turns out <= <= is now a thing Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH testcases updated Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: case switch for standardizaton * TH autoformatting from running `tox` * TH: E266 comment block format adherence * TH: E501 line too long format adherence (except link and Thai date names for now) * TH: E501 cleanups. other final checks (for now) * TH Sort testcase date Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * Added tests for Thailand * TH fixed Visakha Bucha trigger * TH fixed wording, add missing special election holiday Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH fixes New Year's Eve (in lieu) Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH Songkran special in lieu, fixes Queen Sirikit's bday error No, you cannot simply changes your own birthday lmao, but the case is indeed correct for Mother's Day * TH Asarnha-Buddhist Lent Day in lieu fixes * TH: holiday limiter is ; not , (1) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: holiday limiter is ; not , (2) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (1) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (2) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (3) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (4) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove useless recursive call for `add_holiday` Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: improve test code Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (5) Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: add missing `self.observed`, remove all defunct codes * TH: further simplify Asarnha Bucha trigger Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: improve test code (2) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * Burundi holidays refactoring * Fix Islamic holidays calculation - fix for holidays that happen twice in a Gregorian year (primarily islamic New Year) - years range checking more strictly * Update environment: - Add Makefile, wrap common commands - Move all requirements file to `requirements` directory - Move tests from `test` to `tests` directory - Introduce `pytest-xdist`, make pytest running in parallel - Add local pre-push hook for tests - Format ci-cd.yml - Clean up pyproject.toml - Update tox.ini, make tox running in parallel - Update setup.cfg - Update CONTRIBUTION.rst instructions * Add filter warnings comment. * Fix utils tests. * Set Python version for QA job. * Run tests via 'make test'. * TH: no `self.observed` needed if they already have special in-lieus * TH: adjust this for coverall tests * docstring fix * TH: Thai lunar calendar now works up to 1941, all trigger now starts in 1941 * TH: test case refractor + extend checks to 2030 Individual Holiday's test case: - assertNoHoliday 1 year prior - assertHoliday while exists - assertNoHoliday 1 year post - asserNoHoliday for holidays_no_observed for 2010-2030 * TH: Buddhist holiday extended testcases, applying suggestions Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * Tests update * Update .pre-commit-config.yaml and tox.ini. * Fix imports. * Botswana observed holidays performance optimization * Burundi observed holidays performance optimization * Ukraine observed holidays performance optimization * TH: remove `_en` suffix, `__init__(self, **kwargs):` * TH: code improvements suggestions from @arkid15r Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * TH: remove financial holiday stubs (this will be its own thing later) * TH: move sources to 2nd row, `_ThaiLuniSolar` is now in util.py * fix Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: add Atthami Bucha and Ok Phansa support for * TH: fixed double `raeknakhwan` oversight Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: `_ThaiLuniSolar` either returns date-type or None * TH: `add_holiday` --> `_add_with_observed` for unified wording * TH: `KJhellico`'s suggestions Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * Fix merge issues. * TH: applying `arkid15r` 's suggestions - Simplified __init__ section for Thailand's, removed for _ThaiLuniSolar - Simplified _ThaiLuniSolar holiday codes - _ThaiLuniSolar's comment are now docstrings - Move all Thailand's holiday references to above limitations' section - Remove Thailand's duplicate date checks (with TODO comments instead) - Thailand's In Line comments are also moved to each holiday's header for better readability Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * TH: in-line single instance holidays Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * TH: forgot to re-sort this, oof Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: fixed duplicate var, other improvements Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * TH: clean up comments * TH: back to `@lru_cache()` again * Simplify test classes setup. Update documentation. * Exclude tests from the MANIFEST.in. * Add Marshall Islands (ISO-3666-1 code MH) * Fix Northern Mariana Islands (ISO-3666-2 code US-MP) * Adds ISO 3166-1 entries for countries that are also ISO 3166-2 subdivisions of the United States * isort fix * add TODO * Lost some pieces on the way... * MH additional testing for coverall * Update holidays/countries/united_states.py Thanks...no idea what's happening with snippets of code! Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * Add United States Minor Outlying Islands (ISO-3666-2 code US-UM) (#940) * ISO 3166-1 for US subdivisions (#941) * Add Marshall Islands (ISO-3666-1 code MH) * Fix Northern Mariana Islands (ISO-3666-2 code US-MP) * Adds ISO 3166-1 entries for countries that are also ISO 3166-2 subdivisions of the United States * isort fix * add TODO * Lost some pieces on the way... * MH additional testing for coverall * Update holidays/countries/united_states.py Thanks...no idea what's happening with snippets of code! Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: dr-prodigy <dr.prodigy.github@gmail.com> * Add International Women's Day for DE-MV (#936) * Add internationaler Frauentag for DE-MV * Remove trailing whitespace * Remove .gitpod.yml * Add .gitpod.yml to .gitignore * Add tests for Frauentag in DE-MV * CHANGES sync * Return `None` explicitly. (#935) * CHANGES sync * Rework i18n. * Update pre-commit settings. * Fix Thailand related changes coverage decrease. * Fix naming and minor issues in .pot files generator. * Update translations. * Add final fixes. * Add additional cases. * TH: additional testcases for the rest of Thai Lunar Holidays * Fix Ukraine tests * Fix ordering. * Add missing cases. * Rename dev env setup target. * Suppress warnings for tests. * Poland: - added historical holidays - added Ukrainian translation - refactored tests * header fix * Optimize observed holidays for Mozambique, Namibia, Zambia, Zimbabwe * Added test for Ukrainian * Update Albania observed holidays * National Day for Truth and Reconciliation in British Columbia (Canada) * Optimize observed holidays for Angola, Eswatini, Kazakhstan, Kenya, Malawi, Singapore, South Africa * fix Co-authored-by: PPsyrius <19505219+PPsyrius@users.noreply.github.com> * Localize ascii incompatible countries. Add en_US localizatin for: - Armenia - Belarus - Bulgaria - Canada - Cyprus - Ethiopia - Georgia - Greece - Japan - Russia - Serbia Update po generation files script. Update MANIFEST.in. Update README.rst. Fix packaging. * Fix headers. * fix Co-authored-by: Arkadii Yakovets <ark@cho.red> * Fix mo cleanup process. * Fix compatibility issue. * Fix .po files related issues. * Add .mo files generator. Rework `TestCase` base class l10n handling. * Update Makefile. * Re-enable fallback translation. * Fix minor test issues. * Update PR template. * Update CHANGES. * Update version format. * Update CHANGES * Bump mypy version. (#970) * Fix readthedocs.io build: (#973) - Add .readthedocs.yaml. - Update .gitignore. - Update .pre-commit-config.yaml. - Update Makefile. - Update tox.ini. * Update CHANGES. * Added Peru localization (es, en_US, uk) * Update CHANGES * Update .rst files. * Add Thailand holidays localization: en_US, th (#946) * TH: modify Thailand code to support i18n * TH: applying `KJhellico`'s suggestion, more accurate titles Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: non-ASCII `msgid` fixed * TH: Thai translation localisations * TH: fixed mismatch file title Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: `set_locale` -> `set_language` * TH: switch default loc to `th` * TH: split string Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description (2) Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: avoid explicit `# noqa: E501` usage * TH: improved national day trigger * TH: avoid explicit `# noqa: E501` for testcases --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <ark@cho.red> * Update Ireland holidays: St. Bridget's Day (#953) * IE: Fixed St. Brigit's Day (Monday is the day itself, not `(observed)`) Co-Authored-By: Kevin Gill <kevin@movieextras.ie> * IE: applying code suggestions Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * IE: add testcase for St. Brigid's Day * IE: [ ] --> ( ) Co-authored-by: Arkadii Yakovets <ark@cho.red> --------- Co-authored-by: Kevin Gill <kevin@movieextras.ie> Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <ark@cho.red> * Update Azerbaijan holidays (#961) * Update Saudi Arabia holidays (#962) * Malaysia observed holidays performance optimization (#963) * Update Japan holidays localization: en_US (#964) * Fix Japan en_US translation * fix Co-authored-by: Arkadii Yakovets <ark@cho.red> --------- Co-authored-by: Arkadii Yakovets <ark@cho.red> * Added Colombia localization (es, en_US, uk) (#965) * Added Monaco localization (en_US, fr, uk) (#966) * Update Argentina holidays, added Ukrainian localization (#968) * Refactor calendars: extract from `utils.py` to `calendars.py`. (#969) * Optimize Nigeria observed holidays --------- Co-authored-by: delaosa <delaosa@gmail.com> Co-authored-by: Arkadii Yakovets <ark@cho.red> Co-authored-by: PPsyrius <19505219+PPsyrius@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> Co-authored-by: Mike Borsetti <mike@borsetti.com> Co-authored-by: Mike Borsetti <26698111+mborsetti@users.noreply.github.com> Co-authored-by: dr-prodigy <dr.prodigy.github@gmail.com> Co-authored-by: Alexander Schulze <alexanderschulze@users.noreply.github.com> Co-authored-by: Kevin Gill <kevin@movieextras.ie>
* fix Co-authored-by: Arkadii Yakovets <ark@cho.red> * Bolivia holidays update and refactoring * Panama holidays added * Refactor days offset calculation for recently added countries * Change some of common.TestCase methods behavior: - `TestCase::assertHolidayName - `TestCase::assertHolidaysName` - `TestCase::assertNoHolidayName` * Cuba holidays refactoring * Hong Kong fix * Thai Lunar Calendar added, exact start of holidays for historic use, refs, etc. * In-code comment improvements for readability * Add contact info in case future changes are needed * Fixed syntax error * TH Special Holidays code improvements Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH in lieu holiday trigger refactor Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: turns out <= <= is now a thing Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH testcases updated Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: case switch for standardizaton * TH autoformatting from running `tox` * TH: E266 comment block format adherence * TH: E501 line too long format adherence (except link and Thai date names for now) * TH: E501 cleanups. other final checks (for now) * TH Sort testcase date Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * Added tests for Thailand * TH fixed Visakha Bucha trigger * TH fixed wording, add missing special election holiday Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH fixes New Year's Eve (in lieu) Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH Songkran special in lieu, fixes Queen Sirikit's bday error No, you cannot simply changes your own birthday lmao, but the case is indeed correct for Mother's Day * TH Asarnha-Buddhist Lent Day in lieu fixes * TH: holiday limiter is ; not , (1) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: holiday limiter is ; not , (2) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (1) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (2) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (3) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (4) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove useless recursive call for `add_holiday` Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: improve test code Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: remove redundant function (5) Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: add missing `self.observed`, remove all defunct codes * TH: further simplify Asarnha Bucha trigger Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: improve test code (2) Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * Burundi holidays refactoring * Fix Islamic holidays calculation - fix for holidays that happen twice in a Gregorian year (primarily islamic New Year) - years range checking more strictly * Update environment: - Add Makefile, wrap common commands - Move all requirements file to `requirements` directory - Move tests from `test` to `tests` directory - Introduce `pytest-xdist`, make pytest running in parallel - Add local pre-push hook for tests - Format ci-cd.yml - Clean up pyproject.toml - Update tox.ini, make tox running in parallel - Update setup.cfg - Update CONTRIBUTION.rst instructions * Add filter warnings comment. * Fix utils tests. * Set Python version for QA job. * Run tests via 'make test'. * TH: no `self.observed` needed if they already have special in-lieus * TH: adjust this for coverall tests * docstring fix * TH: Thai lunar calendar now works up to 1941, all trigger now starts in 1941 * TH: test case refractor + extend checks to 2030 Individual Holiday's test case: - assertNoHoliday 1 year prior - assertHoliday while exists - assertNoHoliday 1 year post - asserNoHoliday for holidays_no_observed for 2010-2030 * TH: Buddhist holiday extended testcases, applying suggestions Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * Tests update * Update .pre-commit-config.yaml and tox.ini. * Fix imports. * Botswana observed holidays performance optimization * Burundi observed holidays performance optimization * Ukraine observed holidays performance optimization * TH: remove `_en` suffix, `__init__(self, **kwargs):` * TH: code improvements suggestions from @arkid15r Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * TH: remove financial holiday stubs (this will be its own thing later) * TH: move sources to 2nd row, `_ThaiLuniSolar` is now in util.py * fix Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: add Atthami Bucha and Ok Phansa support for * TH: fixed double `raeknakhwan` oversight Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: `_ThaiLuniSolar` either returns date-type or None * TH: `add_holiday` --> `_add_with_observed` for unified wording * TH: `KJhellico`'s suggestions Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * Fix merge issues. * TH: applying `arkid15r` 's suggestions - Simplified __init__ section for Thailand's, removed for _ThaiLuniSolar - Simplified _ThaiLuniSolar holiday codes - _ThaiLuniSolar's comment are now docstrings - Move all Thailand's holiday references to above limitations' section - Remove Thailand's duplicate date checks (with TODO comments instead) - Thailand's In Line comments are also moved to each holiday's header for better readability Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * TH: in-line single instance holidays Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * TH: forgot to re-sort this, oof Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: fixed duplicate var, other improvements Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * TH: clean up comments * TH: back to `@lru_cache()` again * Simplify test classes setup. Update documentation. * Exclude tests from the MANIFEST.in. * Add Marshall Islands (ISO-3666-1 code MH) * Fix Northern Mariana Islands (ISO-3666-2 code US-MP) * Adds ISO 3166-1 entries for countries that are also ISO 3166-2 subdivisions of the United States * isort fix * add TODO * Lost some pieces on the way... * MH additional testing for coverall * Update holidays/countries/united_states.py Thanks...no idea what's happening with snippets of code! Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * Add United States Minor Outlying Islands (ISO-3666-2 code US-UM) (#940) * ISO 3166-1 for US subdivisions (#941) * Add Marshall Islands (ISO-3666-1 code MH) * Fix Northern Mariana Islands (ISO-3666-2 code US-MP) * Adds ISO 3166-1 entries for countries that are also ISO 3166-2 subdivisions of the United States * isort fix * add TODO * Lost some pieces on the way... * MH additional testing for coverall * Update holidays/countries/united_states.py Thanks...no idea what's happening with snippets of code! Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: dr-prodigy <dr.prodigy.github@gmail.com> * Add International Women's Day for DE-MV (#936) * Add internationaler Frauentag for DE-MV * Remove trailing whitespace * Remove .gitpod.yml * Add .gitpod.yml to .gitignore * Add tests for Frauentag in DE-MV * CHANGES sync * Return `None` explicitly. (#935) * CHANGES sync * Rework i18n. * Update pre-commit settings. * Fix Thailand related changes coverage decrease. * Fix naming and minor issues in .pot files generator. * Update translations. * Add final fixes. * Add additional cases. * TH: additional testcases for the rest of Thai Lunar Holidays * Fix Ukraine tests * Fix ordering. * Add missing cases. * Rename dev env setup target. * Suppress warnings for tests. * Poland: - added historical holidays - added Ukrainian translation - refactored tests * header fix * Optimize observed holidays for Mozambique, Namibia, Zambia, Zimbabwe * Added test for Ukrainian * Update Albania observed holidays * National Day for Truth and Reconciliation in British Columbia (Canada) * Optimize observed holidays for Angola, Eswatini, Kazakhstan, Kenya, Malawi, Singapore, South Africa * fix Co-authored-by: PPsyrius <19505219+PPsyrius@users.noreply.github.com> * Localize ascii incompatible countries. Add en_US localizatin for: - Armenia - Belarus - Bulgaria - Canada - Cyprus - Ethiopia - Georgia - Greece - Japan - Russia - Serbia Update po generation files script. Update MANIFEST.in. Update README.rst. Fix packaging. * Fix headers. * fix Co-authored-by: Arkadii Yakovets <ark@cho.red> * Fix mo cleanup process. * Fix compatibility issue. * Fix .po files related issues. * Add .mo files generator. Rework `TestCase` base class l10n handling. * Update Makefile. * Re-enable fallback translation. * Fix minor test issues. * Update PR template. * Update CHANGES. * Update version format. * Update CHANGES * Bump mypy version. (#970) * Fix readthedocs.io build: (#973) - Add .readthedocs.yaml. - Update .gitignore. - Update .pre-commit-config.yaml. - Update Makefile. - Update tox.ini. * Update CHANGES. * Added Peru localization (es, en_US, uk) * Update CHANGES * Update .rst files. * Add Thailand holidays localization: en_US, th (#946) * TH: modify Thailand code to support i18n * TH: applying `KJhellico`'s suggestion, more accurate titles Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * TH: non-ASCII `msgid` fixed * TH: Thai translation localisations * TH: fixed mismatch file title Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * TH: `set_locale` -> `set_language` * TH: switch default loc to `th` * TH: split string Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: adjust file description (2) Co-authored-by: Arkadii Yakovets <ark@cho.red> * TH: avoid explicit `# noqa: E501` usage * TH: improved national day trigger * TH: avoid explicit `# noqa: E501` for testcases --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <ark@cho.red> * Update Ireland holidays: St. Bridget's Day (#953) * IE: Fixed St. Brigit's Day (Monday is the day itself, not `(observed)`) Co-Authored-By: Kevin Gill <kevin@movieextras.ie> * IE: applying code suggestions Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * IE: add testcase for St. Brigid's Day * IE: [ ] --> ( ) Co-authored-by: Arkadii Yakovets <ark@cho.red> --------- Co-authored-by: Kevin Gill <kevin@movieextras.ie> Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <ark@cho.red> * Update Azerbaijan holidays (#961) * Update Saudi Arabia holidays (#962) * Malaysia observed holidays performance optimization (#963) * Update Japan holidays localization: en_US (#964) * Fix Japan en_US translation * fix Co-authored-by: Arkadii Yakovets <ark@cho.red> --------- Co-authored-by: Arkadii Yakovets <ark@cho.red> * Added Colombia localization (es, en_US, uk) (#965) * Added Monaco localization (en_US, fr, uk) (#966) * Update Argentina holidays, added Ukrainian localization (#968) * Refactor calendars: extract from `utils.py` to `calendars.py`. (#969) * Thai loc for Canadian holidays * Update CHANGES. * Improve Argentina holidays (#988) * Initial ARG revamped logic + testcases * AR: Ukranian Loc Part 1 Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * AR: Ukranian Loc Part 2 Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * AR: en_US Loc Part 1 Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * AR: Ukranian Loc Part 3 Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * AR: improve trigger Part 1 Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * AR: improve test case Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * AR: Veterans Day logic improvements Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * AR: Belgrano/Flag Day logic improvements Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * AR: San Martin Day special case for 2011 check Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * AR: Malvinas Sovereignty Day logic improvements Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com> * AR: Implemented Arkid15r's suggestions Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * AR: Stricter PEP 8 Adherance Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * Added functions for relative weekdays calculation (#989) * Add Chile holidays localization: en_US, es, uk (#990) * Clean up tests module loading. (#992) Remove unused code from `tests/countries/__init__.py`. * Refactor `HolidayBase::get_named` (#991) * Refactor `HolidayBase::get_named`: - Add `lookup` parameter. - Add `contains/iexact/icontains/iexact` lookup types. - Keep the current behavior with `icontains` as default lookup type. * Optimize holiday name lookups. Use exact lookup for holiday name assertions. * Use the built-in library for time zone functions (#993) * Use the built-in library for time zone functions * Improve coverage * Extend to JP * Fixed tox.ini typo (#994) * Clean up Thailand localization and in-line code comments (#995) * Cleans up TH documentation & localization files * TH: Stricter PEP 8 Adherance * Refactored Malaysia tests (#996) * Update PR template. (#997) * Add tox-ini-fmt to .pre-commit-config.yaml (#999) * Add tox-ini-fmt to .pre-commit-config.yaml. * Bump the version. * Fixed New Year observed calculation for NYSE (#1000) * Update CHANGES. * Simplify l10n business logic. * Migrate more countries. * Update holiday groups PR. * Update l10n documentation. * Update Lithuania and Ukraine. * Rework l10n. * Update l10n documentation. Revert Paraguay changes. * Update PY `_add_holiday`. * Use gettext as `tr`. * Use `HolidayBase::_add_holiday` in more countries. * Clean up more countries. * Update docs. * Update holidays/countries/canada.py Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> * Check Cuba and Monaco cases. --------- Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Hi, this is based on the work on #827 and #929, which has since been merged into the
beta
branch, although I've yet to get the.mo
and.po
files generated by the script.@arkid15r If you have any idea how to get this working somehow, let me know so I can fill in the translated localisations. :)