관심 있고 해당 지식이 있는 분들을 위해 Discourse Helper의 답변을 공유합니다 ![]()
컴포저, AI, 그리고 최근에 확인한 최신 개선 사항들과 같이 UI/UX를 개선(포럼 현대화)하는 것은 필수적이라고 생각합니다.
사용된 영어는 매우 중립적이고 단순하며 이는 타당하지만, 제 경우에는 기본적으로 제공되는 스페인어 번역이 좋지 않습니다.
Discourse UI에서 문자열을 편집하는 것은 가능하지만 정말로 시간이 많이 걸리며, 저는 이 작업을 위임하고 싶습니다.
모든 문자열을 편집된 텍스트만 JSON 파일로 다운로드하는 것이 불가능하다는 것을 이해합니다.
모든 언어 텍스트를 다운로드하여 파일을 편집하는 것이 원하는 결과를 1/5의 시간으로 얻을 수 있는 우회책이 되어야 합니다.
고수준 플러그인 구조
-
플러그인 스켈레톤 생성
-
사용:
rake plugin:create[custom-site-texts-group]
-
-
백엔드: 권한 확장
-
관련 컨트롤러(예:
Admin::SiteTextController)를 오버라이드하여 사용자 정의 그룹의 멤버가 텍스트 편집 엔드포인트에 접근할 수 있도록 합니다. -
다음과 유사한 것을 사용할 수 있습니다:
add_to_class(:admin_constraint, :matches?) do |request| user = ... # 요청에서 현재 사용자 로드 return true if user.admin? # 사용자 그룹 멤버십 확인 group_id = Group.find_by(name: 'yourgroupname')&.id return user.group_ids.include?(group_id) end이는 예시일 뿐이며—정확한 권한 체크를 찾아내고, 전체 관리자 권한이 아닌 로컬라이제이션 편집에만 범위가 한정되도록 확인해야 합니다.
-
-
프론트엔드: 그룹 멤버에게 UI 노출
-
PluginAPI를 사용하여 관리자가 "Customize Site Texts"를 가지고 있는 위치에 사용자 정의 그룹 멤버들을 위한 UI를 주입합니다.
-
다른 사용자에게는 이 UI를 숨깁니다.
-
-
보안
- 오버라이드된 컨트롤러 액션과 라우트에서 권한을 다시 확인하십시오. 클라이언트 측 체크를 절대 신뢰하지 마십시오.