[다국어 처리] 다국어 처리, 관리방법 시행착오 및 개선
배경
회사에서 운영하는 서비스는 여러 국가에서 이용되고 있습니다.
각 국가별 사용성을 향상시키기 위해 다국어 처리를 진행하고 있습니다.
주요 시행 착오와 개선 사항은 다음과 같습니다.
시행 착오 1
여러 단어를 결합한 경우, 해당 로케일을 결합하여 사용하는 과정에서 문제가 발생했습니다.
예를 들어, 사용자와 정보를 합쳐서 사용자 정보로 표현할 때, 존재하지 않는 단어가 생성되는 경우가 발생했습니다.
코드로 표현하자면 아래와 같습니다.
사용자 : user
정보 : information
사용자 정보 : `${user}${information}`
국가별로 단어 사용자 정보가 사용자 + 정보 단어의 합이 아닌 경우가 있습니다.
이를 해결하기 위해 단어를 합치는 대신 새로운 로케일을 추가하는 방법을 도입했습니다.
사용자 : user
정보 : information
사용자 정보 : userInformation
위처럼 사용하면 어느 국가에서도 문제가 발생하지 않았습니다.
시행 착오 2
로케일을 페이지 단위로 생성하다 보니 중복 로케일이 많이 발생했습니다.
예를 들어, 사용자 단어가 있는 경우 통계 페이지에서는 statisticsUser, 대시보드 페이지에서는 dashboardUser로 관리를 했습니다.
statisticsUser : 사용자
dashboardUser : 사용자
위처럼 관리하는 중복된 값이 많아졌습니다.
결론
위 두 가지 문제를 해결하기 위해 새로운 로케일 관리 방법을 도입했습니다.
- 로케일은 짧은 단위로 생성합니다.
- 로케일을 합쳐서 사용하는 대신 필요한 경우 새로운 로케일을 추가합니다.
- 동일한 값의 로케일 키를 생성하지 않습니다. (일부 예외가 있을 수 있습니다.)
- 로케일 키 생성 시 영어를 기준으로 합니다. (검색이 용이합니다.)
위에서 언급한 동일한 값의 로케일 키를 생성하지 않습니다. 의 예외의 예시를 알아보겠습니다.
동일한 값이지만 다른 문화권에서는 다른 형태로 표현되는 경우가 있습니다.
예를 들어, 영어에서는 1st, 2nd, 3rd, 4th 등으로 표현하지만, 베트남어에서는 모두 ngày로 표현됩니다.
이 경우 중복된 ngày 값을 가질 수 있습니다.
결과
로케일 키가 중복되는 문제를 해결하고, 변경 사항을 반영하여 약 1,000개의 로케일 키가 감소했습니다.
이로 인해 코드 라인도 약 10,000줄이 줄어들었고, 로케일 관리가 더욱 간편해졌으며 개발 속도가 향상되었습니다.
또한, 동일한 단어를 반복 번역하는 작업이 줄어들어 로케일 결과물을 받는 속도도 향상되었습니다.
'공유 > 기타' 카테고리의 다른 글
Dead Code 찾기, 사용하지 않는 파일, 변수 찾기 (1) | 2024.07.10 |
---|---|
Visual Studio Code 단축키 (macOs) (0) | 2024.06.24 |
yarn vs yarn tsc 차이점 (0) | 2024.03.11 |
[Visual Studio Code] 한글 네모, 한글 노란색 네모 박스 끄기 (0) | 2023.06.13 |
[husky] husky를 이용하여 commit-message validation 하기 (0) | 2023.02.23 |