Record ListResources

Hub URL 언어 지정 및 사용자 언어 전환 처리 개선

humanpchumanpc ·
09-3020
<p><span>Glitter Project Hub의 URL을 이용한 언어 지정 기능과 사용자 언어 전환 처리를 개선했습니다.</span></p><p><span>이제 외부 사이트나 문서에서 Hub로 연결할 때 URL의 lang parameter를 이용해 처음 표시할 언어를 지정할 수 있습니다.</span></p><p><span>예를 들어 영어로 연결하려면 다음 URL을 사용할 수 있습니다.</span></p><p><a target="_blank" rel="noopener noreferrer" href="https://hub.glitter.kr/?lang=en"><span>https://hub.glitter.kr/?lang=en</span></a></p><p><span>Hub는 lang으로 전달된 값을 그대로 사용하는 대신 G7 런타임이 제공하는 지원 locale 목록을 기준으로 유효한 언어인지 확인합니다. 따라서 Hub에서 지원하는 locale을 별도로 하드코딩하지 않으며, 지원하지 않는 값은 언어 변경에 사용하지 않습니다.</span></p><p><span>유효한 locale이 지정된 경우에도 별도의 언어 처리 체계를 만들지 않고 G7이 제공하는 기존 locale 변경 기능을 사용합니다. 이에 따라 기존의 언어 변경 및 저장 방식도 그대로 유지됩니다.</span></p><p><span>lang은 외부 링크를 통해 Hub에 진입할 때 사용할 초기 언어를 지정하는 역할을 합니다. URL로 지정된 언어가 적용된 뒤에도 lang은 URL에 유지됩니다.</span></p><p><span>예:</span></p><p><span>/?lang=en</span><br><span>→ 영어로 진입</span><br><span>→ URL의 lang=en 유지</span></p><p><span>Hub에 진입한 뒤 사용자가 언어 선택 UI에서 직접 언어를 선택하면 사용자의 선택을 우선합니다. 이 경우 기존 언어 전환을 실행하기 전에 URL에서 lang을 제거합니다.</span></p><p><span>예:</span></p><p><span>/?lang=en</span><br><span>→ 영어로 진입</span><br><span>→ 사용자가 한국어 선택</span><br><span>→ URL에서 lang 제거</span><br><span>→ /</span><br><span>→ 한국어로 전환</span></p><p><span>현재 표시 중인 언어와 같은 언어를 다시 선택한 경우에도 lang은 제거합니다. 실제 locale 변경이 필요하지 않더라도 사용자가 언어를 직접 선택했다는 의미를 반영하여 URL에 남아 있던 초기 언어 지정을 해제합니다.</span></p><p><span>lang을 제거할 때 페이지를 다시 불러오지 않습니다. 또한 다른 query parameter와 URL hash는 그대로 보존하고 lang만 제거합니다.</span></p><p><span>예:</span></p><p><span>/projects/123?lang=en&amp;foo=bar#activity</span><br><span>→ 사용자가 언어 선택</span><br><span>→ /projects/123?foo=bar#activity</span></p><p><span>이번 처리에서 lang의 역할은 다음과 같이 구분됩니다.</span></p><p><span>외부 링크의 lang</span><br><span>→ Hub에 처음 진입할 언어 지정</span><br><span>→ G7 런타임의 지원 locale을 기준으로 유효성 확인</span><br><span>→ 기존 G7 locale 처리 경로를 통해 적용</span></p><p><span>Hub의 언어 선택 UI</span><br><span>→ 사용자의 명시적인 언어 선택</span><br><span>→ URL의 lang 제거</span><br><span>→ 기존 G7 locale 처리 경로를 통해 언어 전환</span></p><p><span>이번 기능은 Glitter Project Hub custom template 범위에서 구현했습니다. Gnuboard7 core는 수정하지 않았으며, desktop과 mobile에서 사용하는 언어 선택 경로를 모두 처리했습니다.</span></p><p><span>Template source 구현과 production build를 완료한 뒤 정상 template lifecycle을 통해 운영 환경에 반영했습니다.</span></p><p><span>URL의 lang을 이용한 영어 진입은 실제 production 브라우저에서 확인했습니다. 언어 선택 UI에서 lang을 제거하는 기능도 production에 반영했으며, 해당 UI 동작에 대한 최종 브라우저 상호작용 검증은 남아 있습니다.</span></p><p><span>이번 개선으로 외부에서는 원하는 언어를 지정해 Hub로 연결할 수 있고, Hub에 진입한 이후에는 URL의 초기 언어 지정에 계속 종속되지 않고 사용자가 직접 언어를 선택할 수 있습니다.</span></p>

Comments and actions are deferred

Load the comment and action area when you need it. Comments: 0