Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
183b108
Add chinese_simplified translation for Monitor 1.5.0
hostellerie Oct 5, 2026
b5913c9
Add chinese_traditional translation for Monitor 1.5.0
hostellerie Oct 5, 2026
cce76b2
Add french_canada translation for Monitor 1.5.0
hostellerie Oct 5, 2026
168dc38
Add french_france translation for Monitor 1.5.0
hostellerie Oct 5, 2026
4dad884
Add german_formal translation for Monitor 1.5.0
hostellerie Oct 5, 2026
efc0126
Add german translation for Monitor 1.5.0
hostellerie Oct 5, 2026
87575e7
Add hebrew translation for Monitor 1.5.0
hostellerie Oct 5, 2026
de09319
Add italian translation for Monitor 1.5.0
hostellerie Oct 5, 2026
1d19600
Add japanese translation for Monitor 1.5.0
hostellerie Oct 5, 2026
516d221
Add persian translation for Monitor 1.5.0
hostellerie Oct 5, 2026
d71d957
Add russian translation for Monitor 1.5.0
hostellerie Oct 5, 2026
5061e81
Add spanish_argentina translation for Monitor 1.5.0
hostellerie Oct 5, 2026
b813da9
Add spanish translation for Monitor 1.5.0
hostellerie Oct 5, 2026
293feae
Add CI guard for Monitor language parity
hostellerie Oct 5, 2026
86b1974
Document Monitor 1.5.0 language support
hostellerie Oct 5, 2026
bae82d6
Add Monitor 1.5.0 language release notes
hostellerie Oct 5, 2026
e71392f
Record Monitor 1.5.0 language integration
hostellerie Oct 5, 2026
80fe496
Allow Monitor 1.5.0 language branch to rebuild dist archive
hostellerie Oct 5, 2026
49e47c6
Update Monitor 1.5.0 distribution archive
github-actions[bot] Oct 5, 2026
9879a06
Fix Monitor 1.5.0 language branch archive workflow
hostellerie Oct 5, 2026
0d6fa51
Update Monitor 1.5.0 distribution archive
github-actions[bot] Oct 5, 2026
656191f
Run Monitor compatibility CI on 1.5.0 language branch
hostellerie Oct 5, 2026
a40ab46
Update Monitor 1.5.0 distribution archive
github-actions[bot] Oct 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions .github/workflows/build-dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
push:
branches:
- monitor-1.5.0
- monitor-1.5.0-lang
paths-ignore:
- 'dist/**'

Expand Down Expand Up @@ -93,15 +94,16 @@ jobs:
sha256sum dist/monitor_1.5.0_2.1.1.zip

- name: Commit dist archive to branch
if: github.ref == 'refs/heads/monitor-1.5.0'
if: github.ref == 'refs/heads/monitor-1.5.0' || github.ref == 'refs/heads/monitor-1.5.0-lang'
shell: bash
run: |
set -euo pipefail

# Each run builds the commit that triggered it. If the branch moved
# while the ZIP was being built, do not publish a stale archive.
git fetch origin monitor-1.5.0
REMOTE_HEAD="$(git rev-parse origin/monitor-1.5.0)"
BRANCH="${GITHUB_REF#refs/heads/}"
git fetch origin "$BRANCH"
REMOTE_HEAD="$(git rev-parse origin/$BRANCH)"
if [ "$REMOTE_HEAD" != "$GITHUB_SHA" ]; then
echo "Branch advanced from $GITHUB_SHA to $REMOTE_HEAD; skipping stale dist commit."
exit 0
Expand All @@ -117,12 +119,12 @@ jobs:
echo 'Distribution archive is already up to date.'
else
git commit -m 'Update Monitor 1.5.0 distribution archive'
if ! git push origin HEAD:monitor-1.5.0; then
if ! git push origin HEAD:"$BRANCH"; then
# The branch may have advanced after the pre-push check. In that
# case this archive belongs to an older source commit and must not
# overwrite the newer branch head.
git fetch origin monitor-1.5.0
REMOTE_AFTER_PUSH="$(git rev-parse origin/monitor-1.5.0)"
git fetch origin "$BRANCH"
REMOTE_AFTER_PUSH="$(git rev-parse origin/$BRANCH)"
if [ "$REMOTE_AFTER_PUSH" != "$GITHUB_SHA" ]; then
echo "Branch advanced during archive publication; skipping stale dist push."
exit 0
Expand Down
62 changes: 62 additions & 0 deletions .github/workflows/php-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
push:
branches:
- monitor-1.4.0
- monitor-1.5.0
- monitor-1.5.0-lang
pull_request:

permissions:
Expand Down Expand Up @@ -82,6 +84,66 @@ jobs:
grep -q "name IN ('emails', 'repository', 'github_token')" lib/MonitorConfigCompat.php
test -f language/english_utf-8.php

- name: Check language package parity
shell: bash
run: |
set -euo pipefail
python3 - <<'PY'
import re
from pathlib import Path

expected = [
'chinese_simplified_utf-8.php',
'chinese_traditional_utf-8.php',
'french_canada_utf-8.php',
'french_france_utf-8.php',
'german_formal_utf-8.php',
'german_utf-8.php',
'hebrew_utf-8.php',
'italian_utf-8.php',
'japanese_utf-8.php',
'persian_utf-8.php',
'russian_utf-8.php',
'spanish_argentina_utf-8.php',
'spanish_utf-8.php',
]

key_re = re.compile(r"^\\s*'([^']+)'\\s*=>", re.MULTILINE)
placeholder_re = re.compile(r'%(?:\\d+\\$)?[sd]')

english = Path('language/english.php').read_text(encoding='utf-8')
english_keys = key_re.findall(english)
english_values = {}
for line in english.splitlines():
match = re.match(r"^\\s*'([^']+)'\\s*=>\\s*'(.*)'[,]?\\s*$", line)
if match:
english_values[match.group(1)] = match.group(2)

for filename in expected:
path = Path('language') / filename
assert path.is_file(), 'Missing language file: ' + filename
source = path.read_text(encoding='utf-8')
keys = key_re.findall(source)
assert keys == english_keys, 'Language key drift: ' + filename

values = {}
for line in source.splitlines():
match = re.match(r"^\\s*'([^']+)'\\s*=>\\s*'(.*)'[,]?\\s*$", line)
if match:
values[match.group(1)] = match.group(2)

for key, value in english_values.items():
if key not in values:
continue
expected_placeholders = sorted(placeholder_re.findall(value))
actual_placeholders = sorted(placeholder_re.findall(values[key]))
assert actual_placeholders == expected_placeholders, (
'Placeholder mismatch in %s for %s' % (filename, key)
)

print('All Monitor UTF-8 language files match the English key and placeholder contract.')
PY

- name: Check shared Monitor navigation
shell: bash
run: |
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,12 @@ The data remains owned and calculated by Monitor. Consumers use Geeklog's servic

A static `plugin.json` manifest also exposes Monitor identity, icon and minimum Geeklog/PHP requirements without executing plugin code.

## Languages

Monitor 1.5.0 includes UTF-8 translations for English plus Chinese Simplified, Chinese Traditional, French Canada, French France, German, German Formal, Hebrew, Italian, Japanese, Persian, Russian, Spanish and Spanish Argentina.

The translated files are kept in key and placeholder parity with the canonical English language file through CI checks.

## Development notes

The code version and installer metadata now declare **Monitor 1.5.0**. The release remains subject to the release gates documented in `ROADMAP.md`, with the interrupted-migration/retry test remaining as the principal release gate.
Expand Down
20 changes: 20 additions & 0 deletions RELEASE-NOTES-1.5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,23 @@ After upgrading, verify:
3. Plugins > Discover is sorted alphabetically.
4. GitHub version metadata refreshes correctly with and without a configured token.
5. `dist/monitor_1.5.0_2.1.1.zip` is the only tracked distribution archive.

## Languages

Monitor 1.5.0 now includes the completed UTF-8 language set for:

- Chinese Simplified
- Chinese Traditional
- French Canada
- French France
- German
- German Formal
- Hebrew
- Italian
- Japanese
- Persian
- Russian
- Spanish
- Spanish Argentina

The language files are aligned with the final 1.5.0 English key set, including the new configuration tooltips, and CI verifies key and placeholder parity.
1 change: 1 addition & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,7 @@ A dedicated updater/deployment component remains preferable to rebuilding deploy
- [x] adapt GitHub tag-cache freshness to authentication state (4 h anonymous, 1 h authenticated) while preserving explicit refresh;
- [x] sort Discover plugins alphabetically;
- [x] keep dist limited to the current installable archive and make concurrent archive publication safe.
- [x] integrate the completed 13-language UTF-8 set from the historical `lang` branch on top of the merged 1.5.0 baseline, with key/placeholder parity checks;

## Post-1.5 diagnostic roadmap

Expand Down
Binary file modified dist/monitor_1.5.0_2.1.1.zip
Binary file not shown.
Loading
Loading