텍스트 및 번역¶
MRBS는 응용 프로그램 어휘, 사이트별 문구, 도움말 페이지 및 이 MkDocs 설명서를 구분합니다. 업그레이드를 관리할 수 있도록 올바른 계층을 선택하십시오.
| 작업 | 올바른 위치 |
|---|---|
| 한 번의 설치에 대한 레이블 이름 바꾸기 | $vocab_override의 config.inc.php |
| MRBS UI 언어 추가 또는 개선 | web/lang/lang.<language> |
| 애플리케이션 내 도움말 페이지 번역 또는 사용자 정의 | web/site_faq/site_faq_<language>.html |
| 이 매뉴얼을 번역하세요 | 아래 언어 접미사 파일 docs/ |
한 사이트의 문구 재정의¶
단지 "Room"의 이름을 바꾸거나 사이트 제목을 변경하기 위해 제공된 언어 파일을 편집하지 마십시오. web/lang/lang.en에서 토큰을 찾은 후 재정의하세요.
$vocab_override['en']['mrbs'] = 'Resource Booking';
$vocab_override['de']['mrbs'] = 'Ressourcenbuchung';
$vocab_override['fr']['mrbs'] = 'Réservation de ressources';
$vocab_override['es']['mrbs'] = 'Reserva de recursos';
색인 순서는 항상 언어이고 그 다음이 토큰입니다: $vocab_override[LANG][TOKEN].
유용한 사이트 정의 토큰은 다음과 같습니다.
$vocab_override['en']['room.coffee_machine'] = 'Coffee machine';
$vocab_override['en']['entry.catering'] = 'Catering';
$vocab_override['en']['entry.description.placeholder'] =
'Add information for the room team';
$vocab_override['en']['users.zip_code.oninvalid'] =
'Enter a valid ZIP code';
$vocab_override['en']['type.C'] = 'Customer booking';
사용자 정의 필드 토큰은 사용자 정의 필드에 설명되어 있습니다. 예약 유형 설명에는 type.X가 사용됩니다. 여기서 X는 설정된 유형 코드입니다.
재정의는 사이트 설정에 있으므로 업그레이드 후에도 유지됩니다. 릴리스로 인해 원래 토큰이나 해당 컨텍스트가 변경되면 의미를 다시 확인하세요.
대체 마커 보존¶
언어 문자열에는 printf 표시(예: %s, %d) 또는 위치 형식(예: %1$d)이 포함될 수 있습니다. 모든 마커와 해당 유형을 보존합니다. 번역에서는 위치 형식을 통해서만 인수의 순서를 바꿀 수 있습니다.
또한 의도적인 HTML 조각, 구두점 의미 및 주변 공백을 보존합니다. 해당되는 경우 0, 1 및 다수의 개수로 문자열을 테스트합니다.
인터페이스 언어 선택¶
기본적으로 MRBS는 브라우저에서 언어를 선택합니다.
하나의 언어를 강제하려면 다음을 수행하십시오.
토큰은 사용 가능한 web/lang/lang.* 파일과 일치해야 합니다. 날짜 및 시간에 대한 로캘 선택은 별도로 재정의될 수 있습니다.
$override_locale는 서버 운영 체제에서도 지원되어야 합니다. $cli_language 제어 명령은 브라우저 외부에서 실행됩니다. 진단을 위해 $language_debug = true는 오류 로그에 언어 및 로케일 정보를 기록합니다. 문제 해결 후 다시 비활성화하십시오.
애플리케이션 언어 추가 또는 유지 관리¶
영어 파일은 참조 및 대체 파일입니다. 감지된 토큰이 xx인 언어를 생성하려면:
그런 다음:
- PHP 시작 줄과 모든
$vocab키를 유지하세요. - 토큰 이름이 아닌 문자열 값을 번역합니다.
- 파일을 UTF-8로 저장합니다.
를 제외한 HTML 엔터티를 사용하지 마세요. UTF-8 문자를 직접 작성합니다.- 대체 마커와 의도적인 마크업을 유지합니다.
- PHP 구문을 확인하세요.
MRBS 먼저 영어 참조를 로드한 다음 선택한 언어를 로드하므로 누락된 토큰은 영어로 대체됩니다.
완전성 확인¶
checklang.php는 언어 파일을 lang.en와 비교합니다. 개발 인스턴스의 경우 MRBS 웹 디렉토리에 배치하거나 보관하고 다음을 엽니다.
언어를 선택하지 않으면 설치된 모든 언어 파일이 제공됩니다. 선택적 업데이트 기능은 파일을 쓰기 때문에 쓰기 액세스가 필요합니다. 프로덕션에서는 이를 피하고 생성된 변경 사항을 검토하세요. 확인이 완료되면 공용 배포에서 이 개발 유틸리티를 제한하거나 제거합니다.
구문 검사와 checklang.php 다른 문제 포착: 둘 다 사용하세요.
애플리케이션 내 도움말 페이지 번역¶
도움말 텍스트는 $vocab에서 제공되지 않습니다. 별도로 저장됩니다.
web/site_faq/site_faq.html
web/site_faq/site_faq_de.html
web/site_faq/site_faq_fr.html
web/site_faq/site_faq_es.html
밑줄 없이 접미사를 선택하세요.
'_de'와 같은 이전 값은 호환성을 위해 허용되지만 더 이상 사용되지 않습니다. 설정은 브라우저 언어와 무관하므로 선택한 FAQ가 의도한 청중과 일치하는지 테스트하십시오. 제공된 FAQ 파일에 대한 로컬 편집 내용을 기록하고 업그레이드 중에 다시 적용하거나 병합해야 합니다.
이 매뉴얼을 번역하세요¶
설명서 웹사이트에서는 접미사 파일을 사용합니다.
docs/admin-guide/custom-fields.md
docs/admin-guide/custom-fields.de.md
docs/admin-guide/custom-fields.fr.md
docs/admin-guide/custom-fields.es.md
영어는 문서 대체입니다. 이러한 파일은 MRBS 애플리케이션 UI 또는 도움말 페이지에 영향을 주지 않습니다.
업그레이드가 안전한 워크플로우¶
$vocab_override에 사이트 전용 문구를 입력하세요.- 로컬로 유지 관리되는 언어 및 FAQ 파일 목록을 유지하십시오.
- 추가되거나 변경된 토큰에 대해 새
lang.en를 이전 버전과 비교하세요. - 변경된 모든 언어 파일에 대해
php -l를 실행하세요. - 제한된 개발 인스턴스에서
checklang.php를 실행하세요. - FAQ 변경사항을 별도로 검토하세요.
- 배포하기 전에 모든 활성 언어를 테스트하십시오.
검증 체크리스트¶
- 브라우저 감지 및 강제 기본값은 예상 언어를 선택합니다.
- 누락된 토큰은 이해할 수 있는 영어로 대체됩니다.
- 탐색, 양식, 오류, 승인 및 관리 페이지가 올바르게 렌더링됩니다.
%s,%d및 위치 마커는 올바른 값을 받습니다.- 날짜, 시간, 주중 및 시간대는 의도한 로케일을 사용합니다.
- 이메일 제목과 본문, 보고서, 내보내기 및 명령줄 작업에서는 의도한 언어를 사용합니다.
- 사용자 정의 필드, 예약 유형, 자리 표시자 및 확인 메시지가 번역됩니다.
- 도움말 페이지에서는 예상되는
site_faq파일을 사용합니다. - 로그에는 지속적인 언어 디버깅이나 민감한 양식 값이 포함되어 있지 않습니다.