site/i18n.js (10986B)
1 // Page chrome strings. Verdict text comes from the engine's own catalog
2 // (lib/messages.js); this file only covers what app.js renders around it.
3
4 // Keeps "PHP 8.1" on one line in narrow table cells.
5 const NBSP = String.fromCharCode(0xa0);
6
7 export const UI = {
8 en: {
9 locale: 'en-GB',
10 sources: { selfcheck: 'PHP probe', servercheck: 'server script', header: 'X-Powered-By header', cli: 'php -v output', version: 'version string' },
11 levels: { high: 'High', medium: 'Medium', info: 'Note', ok: 'Clear', warn: 'Check', bad: 'Risk' },
12 statuses: { ok: 'Applied', warn: 'Not applied', info: 'Note' },
13 input: 'Input',
14 distroData: 'Distribution data',
15 evidence: 'Evidence',
16 exposure: 'SAPI exposure',
17 exposurePatched: 'Exposure without the fix',
18 actions: 'Required actions',
19 indicators: 'Compromise indicators',
20 mitigations: 'Interim mitigations',
21 hardening: 'Hardening',
22 mitIntro: 'These narrow the known attack paths while you patch; none of them is a fix. Values are effective for the directory the probe ran in. Set them with php_admin_value or php_admin_flag so application code cannot override them.',
23 hardeningIntro: 'The fix is present. Shown for reference; the upstream advisory suggests keeping upload progress off where it is not used.',
24 setting: 'Setting',
25 value: 'Value',
26 status: 'Status',
27 advisories: 'Distribution advisories',
28 notes: 'Notes',
29 stale: (when) => `The distribution data was last refreshed on ${when}. Confirm against your distribution's current notices.`,
30 sourceFailed: (name, when) => (when
31 ? `The latest refresh of the ${name} data failed. The last successful refresh was on ${when}. Check your distribution's current security notices as well.`
32 : `The latest refresh of the ${name} data failed, so this result uses data from an earlier refresh. Check your distribution's current security notices as well.`),
33 distroNotLoaded: 'The distribution data did not load, so this result could not use it. Reload the page and run the check again.',
34 upstreamData: 'Fixed releases',
35 crossChecked: (when) => `cross-checked ${when}`,
36 refreshFailed: 'latest refresh failed',
37 refreshFailedSince: (when) => `latest refresh failed, last successful refresh ${when}`,
38 dataChanged: (when) => `last changed ${when}`,
39 notLoaded: 'did not load',
40 sourceNames: { 'osv-debian': 'Debian (OSV)', 'osv-ubuntu': 'Ubuntu (OSV)', redhat: 'Red Hat', ghsa: 'php-src advisories' },
41 replaceConfirm: 'Replace the text in the box with this example? The output you pasted will be lost.',
42 copyCommand: 'Copy command',
43 copied: 'Copied',
44 copyReport: 'Copy report',
45 copyFailed: 'Copy failed',
46 reportTitle: (label) => `PHP2Shell check: ${label}`,
47 reportFooter: (repo, when) => `Checked with php2shell-scanner (${repo}) on ${when}. Verdicts rest on versions, packages and settings; they are not proof that an attack would fail.`,
48 loadFailedTitle: 'Version data did not load',
49 loadFailedBody: 'Reload the page. If it keeps failing, open an issue on GitHub.',
50 branch81: `PHP${NBSP}8.1 and older`,
51 all54: 'All from 5.4; older not determined',
52 noUpstream: (branches) => (branches
53 ? `No upstream release. php-src has minimal backport branches for ${branches}; see also the distribution packages.`
54 : 'No upstream release; see the distribution packages.'),
55 eol: (date) => `EOL ${date}`,
56 fixPending: 'Fix pending',
57 noData: 'No data',
58 proTitle: 'Fix ships through Ubuntu Pro (ESM)',
59 distroFailed: 'Distribution data could not be loaded.',
60 rhIntro: 'Red Hat backports fixes into module streams without changing the upstream version, so these are not compared by version. On the RHEL family the server script reads the CVE entries in the package changelog instead.',
61 rhFailed: 'Red Hat data could not be loaded.',
62 statusUpstream: (date) => `Upstream fixed versions last edited ${date}.`,
63 statusUpstreamChecked: (when) => `Upstream fixed versions cross-checked against the php-src advisories on ${when}.`,
64 statusUpstreamUnchecked: (date) => `Upstream fixed versions last edited ${date}; the latest refresh could not cross-check them against the php-src advisories.`,
65 statusUpstreamMismatch: (date) => `Upstream fixed versions last edited ${date}; the latest refresh found a difference from the php-src advisories, so check the advisories directly.`,
66 statusDistro: (changed, checked) => (checked
67 ? `Distribution data last changed ${changed} and last checked ${checked}; it is refreshed every 6 hours from OSV and Red Hat.`
68 : `Distribution data last changed ${changed}; it is refreshed every 6 hours from OSV and Red Hat.`),
69 statusDistroMissing: 'Distribution data did not load.',
70 statusFailed: (list) => `The latest refresh failed for ${list}, so data from an earlier refresh is shown.`,
71 statusLastSuccess: (name, when) => `The last successful refresh of ${name} was on ${when}.`,
72 rhelFamily: 'RHEL family',
73 rhelOption: (rel) => `RHEL ${rel} / Rocky / AlmaLinux`,
74 upstreamOption: 'Self-built or official Docker image',
75 utc: 'UTC',
76 },
77 ko: {
78 locale: 'ko-KR',
79 sources: { selfcheck: 'PHP 프로브', servercheck: '서버 스크립트', header: 'X-Powered-By 헤더', cli: 'php -v 출력', version: '버전 문자열' },
80 levels: { high: '높음', medium: '보통', info: '참고', ok: '이상 없음', warn: '확인 필요', bad: '위험' },
81 statuses: { ok: '적용됨', warn: '미적용', info: '참고' },
82 input: '입력',
83 distroData: '배포판 데이터',
84 evidence: '근거',
85 exposure: 'SAPI 노출도',
86 exposurePatched: '수정 전 노출도',
87 actions: '필요한 조치',
88 indicators: '침해 지표',
89 mitigations: '임시 완화 설정',
90 hardening: '추가 보안 설정',
91 mitIntro: '패치를 마칠 때까지 알려진 공격 경로를 좁혀 주는 설정이며, 어느 것도 패치를 대신하지 않습니다. 값은 프로브가 실행된 디렉터리 기준의 실제 적용값입니다. 애플리케이션 코드가 되돌리지 못하도록 php_admin_value 또는 php_admin_flag로 설정하세요.',
92 hardeningIntro: '수정이 적용되어 있습니다. 참고용으로 표시합니다. 업스트림 공식 권고는 업로드 진행률 기능을 쓰지 않는다면 꺼 두기를 권합니다.',
93 setting: '설정',
94 value: '값',
95 status: '상태',
96 advisories: '배포판 보안 권고',
97 notes: '참고 사항',
98 stale: (when) => `배포판 데이터를 마지막으로 갱신한 시각은 ${when}입니다. 배포판의 최신 보안 권고도 함께 확인하세요.`,
99 sourceFailed: (name, when) => (when
100 ? `${name} 데이터의 최근 갱신이 실패했습니다. 마지막으로 성공한 갱신은 ${when}입니다. 배포판의 최신 보안 권고도 함께 확인하세요.`
101 : `${name} 데이터의 최근 갱신이 실패해 이전에 받은 데이터로 확인했습니다. 배포판의 최신 보안 권고도 함께 확인하세요.`),
102 distroNotLoaded: '배포판 데이터를 불러오지 못해 이 결과에 반영하지 못했습니다. 페이지를 새로 고친 뒤 다시 확인하세요.',
103 upstreamData: '수정 릴리스',
104 crossChecked: (when) => `${when}에 공식 권고와 대조`,
105 refreshFailed: '최근 갱신 실패',
106 refreshFailedSince: (when) => `최근 갱신 실패, 마지막 성공 ${when}`,
107 dataChanged: (when) => `${when}에 마지막 변경`,
108 notLoaded: '불러오지 못함',
109 sourceNames: { 'osv-debian': 'Debian(OSV)', 'osv-ubuntu': 'Ubuntu(OSV)', redhat: 'Red Hat', ghsa: 'php-src 공식 권고' },
110 replaceConfirm: '입력란의 내용을 이 예시로 바꾸시겠습니까? 붙여넣은 출력은 사라집니다.',
111 copyCommand: '명령 복사',
112 copied: '복사됨',
113 copyReport: '결과 복사',
114 copyFailed: '복사 실패',
115 reportTitle: (label) => `PHP2Shell 확인 결과: ${label}`,
116 reportFooter: (repo, when) => `php2shell-scanner(${repo})로 ${when}에 확인했습니다. 결과는 버전, 패키지, 설정을 근거로 하며 공격이 실패한다는 증명이 아닙니다.`,
117 loadFailedTitle: '버전 데이터를 불러오지 못했습니다',
118 loadFailedBody: '페이지를 새로 고치세요. 계속 실패하면 GitHub에 이슈를 남겨 주세요.',
119 branch81: `PHP${NBSP}8.1 이하`,
120 all54: '5.4 이상 전체, 그 이전은 판단 불가',
121 noUpstream: (branches) => (branches
122 ? `업스트림 수정 릴리스가 없습니다. php-src에 ${branches}용 최소 백포트 브랜치가 있습니다. 배포판 패키지도 확인하세요.`
123 : '업스트림 수정 릴리스가 없습니다. 배포판 패키지를 확인하세요.'),
124 eol: (date) => `지원 종료 ${date}`,
125 fixPending: '수정 대기',
126 noData: '데이터 없음',
127 proTitle: 'Ubuntu Pro(ESM)로만 배포되는 수정입니다',
128 distroFailed: '배포판 데이터를 불러오지 못했습니다.',
129 rhIntro: 'Red Hat은 업스트림 버전 번호를 바꾸지 않고 모듈 스트림에 수정을 백포트하므로 버전으로 비교하지 않습니다. RHEL 계열에서는 서버 스크립트가 패키지 변경 이력의 CVE 기록을 대신 확인합니다.',
130 rhFailed: 'Red Hat 데이터를 불러오지 못했습니다.',
131 statusUpstream: (date) => `업스트림 수정 버전 목록은 ${date}에 마지막으로 변경했습니다.`,
132 statusUpstreamChecked: (when) => `업스트림 수정 버전 목록은 ${when}에 php-src 공식 권고와 대조했습니다.`,
133 statusUpstreamUnchecked: (date) => `업스트림 수정 버전 목록은 ${date}에 마지막으로 변경했으며, 최근 갱신에서는 php-src 공식 권고와 대조하지 못했습니다.`,
134 statusUpstreamMismatch: (date) => `업스트림 수정 버전 목록은 ${date}에 마지막으로 변경했으며, 최근 갱신에서 php-src 공식 권고와 다른 점이 발견됐습니다. 공식 권고를 직접 확인하세요.`,
135 statusDistro: (changed, checked) => (checked
136 ? `배포판 데이터는 ${changed}에 마지막으로 바뀌었고 ${checked}에 마지막으로 확인했습니다. OSV와 Red Hat에서 6시간마다 갱신합니다.`
137 : `배포판 데이터는 ${changed}에 마지막으로 바뀌었고, OSV와 Red Hat에서 6시간마다 갱신합니다.`),
138 statusDistroMissing: '배포판 데이터를 불러오지 못했습니다.',
139 statusFailed: (list) => `최근 갱신에서 ${list} 데이터를 받지 못해 이전에 받은 데이터를 표시합니다.`,
140 statusLastSuccess: (name, when) => `${name}의 마지막 갱신 성공 시각은 ${when}입니다.`,
141 rhelFamily: 'RHEL 계열',
142 rhelOption: (rel) => `RHEL ${rel} / Rocky / AlmaLinux`,
143 upstreamOption: '직접 빌드 또는 공식 Docker 이미지',
144 utc: 'UTC',
145 },
146 };