App 다국어 처리
App의 필드 라벨을 각 언어에 추가하고 PHP와 React에서 사용합니다.
App 다국어 처리
데이터 모델과 마이그레이션의 분류 라벨을 추가합니다. App 루트 기준 다음 파일의 기존 JSON 객체에 항목을 넣으세요.
| 파일 | 추가 항목 |
|---|---|
resources/lang/en.json | "workshop.note.category.label": "Category" |
resources/lang/ko.json | "workshop.note.category.label": "분류" |
resources/lang/zh.json | "workshop.note.category.label": "分类" |
기존 항목과 JSON 쉼표를 유지합니다. React에서는 t('workshop.note.category.label'), 요청 처리 중 PHP에서는 __('workshop.note.category.label')로 읽습니다. Core 루트에서 캐시를 비우고 검사합니다.
task artisan -- nexia-runtime:clear-translation-catalog-cache
task artisan -- nexia-runtime:validate-translations확인
각 언어로 Note 폼을 다시 열어 라벨과 필드 오류 연결을 확인합니다.
선언에는 번역 키 사용
Navigation·descriptor 등 contribution은 요청 밖에서 발견됩니다. 미리 번역하거나 locale map을 넣지 말고 labelKey, descriptionKey 등 해당 텍스트 역할의 키를 전달하세요. 호스트가 응답을 만들 때 언어를 적용합니다.
Resource 필드는 workshop.note.*, 권한은 permissions.keys.workshop.note.<action>.label과 .description, 메뉴는 App 접두어를 사용합니다. Resource·App의 고정 키는 번역 대상 문구가 아닌 식별자입니다.
Catalog는 값이 모두 문자열인 평면 JSON 객체입니다. 키에는 점이 필요하고 콜론은 쓰지 않습니다. 소유 경로 조각은 lowercase snake_case를 사용하며 고정 kebab-case 식별자와 enum의 정확한 토큰은 허용합니다. 언어별 placeholder를 맞추고 자연스러운 문구를 작성하세요. 생성기는 기존 catalog에 병합합니다. 중국어 fallback으로 생성된 문구도 릴리스 전에 검토해야 합니다.
상태와 검증 연결 재사용
상태값과 라벨 키는 NoteStatus가 소유합니다. 필터 선택지와 descriptor enum 라벨도 여기서 파생됩니다. React에 상태 목록을 다시 만들지 말고 enum과 번역 항목을 함께 바꿉니다.
생성 폼은 서버 필드명을 Resource 라벨 키에 연결하고 SDK schema로 오류를 전달합니다. workshop.note.category.label을 추가하면 되며 별도 오류 라벨을 하드코딩하지 않습니다.
Catalog 형식이나 라벨 누락은 nexia-apps:doctor-package-app workshop부터 확인하세요. Descriptor 라벨은 Resource 계약, 폼의 텍스트 역할은 React 컴포넌트와 훅을 참고합니다.