# Fluent - 자연스러운 번역을 위한 로컬라이제이션 시스템

> Clean Markdown view of GeekNews topic #14621. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=14621](https://news.hada.io/topic?id=14621)
- GeekNews Markdown: [https://news.hada.io/topic/14621.md](https://news.hada.io/topic/14621.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-05-03T09:31:02+09:00
- Updated: 2024-05-03T09:31:02+09:00
- Original source: [projectfluent.org](https://projectfluent.org/)
- Points: 17
- Comments: 4

## Topic Body

- 비대칭 로컬라이제이션 : 필요한 경우에만 성별/대소문자를 사용하여 자연스러운 번역을 추구. 표현력은 원어의 문법에 제한되지 않음   
- 점진적 향상 : 각 번역은 독립적으로 관리되어 다른 로케일에 영향을 주지 않음. 다른 언어에 영향을 주지 않고 반복적으로 번역을 개선할 수 있음   
- 다양한 기능 : 날짜, 시간 및 숫자 서식. 복수 카테고리. 양방향 지원. 사용자 서식. 읽기 쉬운 문법. 런타임 번역 및 재번역. 강력한 오류 처리   
- 아파치 라이센스 오픈소스. 서버 구현체는 JS, Python, Rust로 제공되며 React 바인딩도 제공   
  
### Fluent를 만든 이유  
- 소프트웨어 로컬라이제이션은 영어 사본에 일대일로 매핑하는 번역이라는 낡은 패러다임이 지배해 왔음  
- 원어의 문법은 번역의 표현력에 제한을 가함   
- 이러한 패러다임을 바꾸기 위해 Fluent를 만들었음   
  - 번역가는 개발자에게 허락을 구하지 않고도 언어의 모든 표현력을 사용할 수 있어야 함  
  - Fluent에서는 번역이 비대칭적. 영어로 된 간단한 문자열이 다른 언어로 된 복잡한 다중 변형 번역으로 매핑될 수 있음  
- Fluent를 사용하면 소스 언어와 관계없이 다양한 언어의 문법과 스타일을 충족할 수 있음   
- 독립적임   
  - 한 언어가 고급 로직의 이점을 활용한다고 해서 이를 적용하기 위해 다른 로컬라이제이션이 필요하지 않음   
  - 각 로컬라이제이션은 번역이 얼마나 복잡해지는지를 각각 제어함

## Comments



### Comment 25064

- Author: yangeok
- Created: 2024-05-09T09:52:39+09:00
- Points: 1

오 예전 1:1 매칭 패러다임에서 벗어난다는게 되게 신기하네요

### Comment 24901

- Author: iolothebard
- Created: 2024-05-03T09:57:45+09:00
- Points: 1

자바스크립트 전용 gettext 열화 버전.

### Comment 24908

- Author: xguru
- Created: 2024-05-03T10:13:16+09:00
- Points: 3
- Parent comment: 24901
- Depth: 1

https://github.com/projectfluent/fluent/wiki/Fluent-vs-gettext  
  
그렇게 말해버리면 이 프로젝트를 너무 가볍게 보는거네요.

### Comment 25200

- Author: iolothebard
- Created: 2024-05-13T15:52:23+09:00
- Points: 1
- Parent comment: 24908
- Depth: 2

답변이 너무 성의(?)없어서 그렇게 보실수도 있겠네요. 좀 더 성의있게 써보겠습니다.  
  
비교표는 어차피 비교주체가 누구냐에 따라 정해져있는거라 큰 의미 없지만,  
  
제가 열화버전이라고 느낀 이유는... 긴 세월동안 많은 사람들에 걸쳐 gettext에 쌓인 노하우들을 존중하지 않는다는 느낌이 들어서 입니다.  
  
gettext는 C언어만 된다고 했는데 메이저 언어중에 gettext를 지원하지 않는 언어가 뭐가 있죠?  
어순의 문제를 고려해서 키-기반 파라메터를 사용했다는데, 모든 언어가 딕셔너리를 기본으로 내장하고 있는게 아닌데, 그런 언어들은 추가적인 방법(예: 자바라면 Map같은)이 필요해 지는 거죠. gettext는 위치기반이지만 어순 변경에 대해 고려가 되어 있죠.  
  
주절주절 적었지만,  
사실... 시작부터 맘에 안들었던 이유는 ${...}가 아니라 {$...}였기 때문입니다^^  
  
개인적으로 "바퀴를 재발명"하는 걸 몹시 좋아합니다만, 세상에 없던 바퀴를 발명한것처럼 떠벌리는 것은 별로 좋아보이지 않네요.
