Files
Gnuboard7/lang/en/extensions.php
T
HeuJung b4ed33aa44 feat(core): 정적 게시 수명주기 보완 — 빌드 파괴·권한·무결성
https://github.com/gnuboard/g7/issues/122 제보자의 추가 지적 2건(빌드가 게시본을
지움 / CLI 최초 게시 후 웹 재생성 불가)에 대응하고, 같은 근본 원인을 공유하는
결함을 전수조사로 함께 고친다.

- 빌드가 자기 산출물만 교체한다: 루트 vite `emptyOutDir: false`
 기본값 true 는 폴백 없는 코어 3번들과 배달된 immutable URL 의 게시본을 함께 지웠다
- 게시 트리 권한을 웹이 이어받는다: 병합 전 프리플라이트 + 부모 그룹 상속·g+w
 종전 소유권 정상화는 root 축만 덮어 비-root CLI 계정은 무방비였다
- 갱신 → 생성 → 완전성 확인을 한 묶음으로: 기록 바이트 대조, .old 원자 스왑,
 rename 일시 거부 재시도, 프론트 JSON 파싱 검증
- 실패를 억제하고 기록한다: 버전 한정 실패 마커 + 사유별 대시보드 알림
 + ext-static:status 점검 커맨드
- 파생: catch-all 제외 목록을 에셋 화이트리스트 합집합에서 파생(mjs·webp·otf 누락),
 번들 디스크 쓰기 fail-soft·빈 번들 503, 활성 디렉토리 prune 회피
2026-08-28 08:02:22 +09:00

69 lines
3.8 KiB
PHP

<?php
return [
'types' => [
'module' => 'Module',
'plugin' => 'Plugin',
'template' => 'Template',
],
'errors' => [
'core_version_mismatch' => ':extension (:type) requires Gnuboard7 core version :required or higher. (Current: :installed)',
'version_check_failed' => 'Version check failed.',
'operation_in_progress' => 'Cannot process the request because ":name" has an operation in progress (:status).',
'zip_missing_manifest' => 'Manifest :file not found inside ZIP: :zip',
'zip_invalid_manifest' => 'Manifest :file inside ZIP is not valid JSON.',
'zip_identifier_mismatch' => 'ZIP manifest identifier does not match target extension. (expected: :expected, actual: :actual)',
'zip_missing_version' => 'Manifest :file inside ZIP has no version field.',
'not_found' => 'Extension (:identifier) not found.',
'cascade_dependency_failed' => 'Failed to install cascade dependency :type (:identifier): :message',
'invalid_type' => 'Invalid extension type.',
'not_auto_deactivated' => 'This extension was not automatically deactivated due to core version incompatibility.',
'hidden_extension' => 'Hidden (internal-only) extensions are not exposed to user actions.',
],
'warnings' => [
'auto_deactivated' => ':type ":identifier" has been automatically deactivated due to core version incompatibility.',
],
'alerts' => [
'incompatible_deactivated' => ':type ":name" auto-deactivated',
'incompatible_message' => 'Required: :required, Installed: :installed',
'recovered_title' => ':type ":name" is compatible again',
'recovered_body' => 'Now compatible after core upgrade (previously required: :previously_required). You can re-activate.',
'recovered_success' => 'Extension has been re-activated.',
'dismissed' => 'Alert dismissed.',
'auto_deactivated_listed' => 'Auto-deactivated extensions listed.',
'recover_action' => 'Re-activate',
'dismiss_action' => 'Dismiss alert',
'static_publish_failed_title' => 'Failed to generate startup files',
'static_publish_failed_parent_not_writable' => 'Could not write to the folder for startup files — :count consecutive failures. The site works normally but the first screen loads more slowly. Run `php artisan ext-static:status` on the server to see the cause.',
'static_publish_failed_write_failed' => 'Generating startup files failed :count times in a row. Check available disk space. The site works normally but the first screen loads more slowly.',
'static_publish_failed_lock_unavailable' => 'Startup file generation was skipped :count times in a row. Check the cache store. The site works normally but the first screen loads more slowly.',
],
'badges' => [
'incompatible' => 'Core upgrade required',
'incompatible_tooltip' => 'Requires core :required or higher (current: :installed)',
'incompatible_sr' => ':name requires core :required or higher but :installed is installed; update is not allowed.',
],
'banner' => [
'title' => 'Some extensions were auto-deactivated due to core compatibility',
'item_required' => 'Required: :required',
'guide_link' => 'Core upgrade guide',
'dismiss' => 'Dismiss',
],
'update_modal' => [
'compat_warning_title' => 'Core version compatibility warning',
'compat_warning_message' => 'This :type requires core :required or higher. (current: :installed)',
'compat_guide_link' => 'View core upgrade guide',
'force_label' => 'Override warning and force update (not recommended)',
],
'commands' => [
'clear_cache_success' => 'Extension version check cache has been cleared.',
],
];